actually commit the protocol