rework IEventLoop interface per feedback