+added state pattern