Base classes for FSM framework