refactor4