How to write a protocol: part 1