refactoring update 3