still at the same refactoring