protocol definition