IChannels now uses functor for callback