This is just my tinkering with Objective C protocols.