imps, refactoring