Added state pattern design application