State machine library.