@gentlesucceder: What is a protocol?