support for concurrent instances of the same flow
encourage calling `$flow->reset()` when finishing the flow