* Added onEnter & onExit hook
* States are now singleton within a state machine