state machine ho