continuing to refactor