Login feature implemented with state pattern