state pattern example - Search