Added FSM Interface Class for abstraction!