Simple and easy testable state machine. It was specially designed for usage in TDD environments.