when is the handle not null?  Can same JobRunner instance be started multiple times?  If so, we have to think about state machine such as shutdown, run, etc.