refactoring methods with Robert, needs correction still