starting to model states as objects