Start to implement ChannelReader properly