Initial implementation of subprotocol negotation