adding state machine package