refactor it