hammerprotocol in its own file