wip on refactoring methods to avoid violating