refactoring needed