exo2 state pattern done