use struct pointer for args (void * may be different on some machines)