use chain
make ConnectionProtocol use an on_event attribute instead of EventEmitter