decompose poller into PollDemuxer and Dispatcher