refactoring update 4