What about rename it to ChannelTransferFuture and extend ChannelFuture. Then your ChannelTransferPromise would also extend it