began refactoring into single obj