added state machine document