Add FSM with GoF state pattern