still on refactoring