Abstract tools to support common refactoring patterns.