Begin state machine implementation
Refactoring constructors to use initialization list