refactor 4