start and stop should always be called from the reactor thread