updated protocol.h