refact to modules: channel/remoting/endpoint; make channel layer clear
remove identity usage
refact channelselector
update test