implemented simple FSM using fireEvent() syntax (Refs #904)