custom run starts in new thread