refactor 2