so refactor