1. A method for creating a software state machine, comprising: providing a state machine object; and providing an initializer object, wherein the initializer object defines states, actions, and conditions for a software state machine, wherein the state machine object is configured to use the initializer object to create an array of state transition objects and execute the software state machine using the array of state transition objects.