ill refactor