Finite State Machine Explained