began refactor out to objects