refactoring supertools