refactor four