Adding iterator pattern + starting state pattern.