A state machine library for Objective-C