continuing to refactor...