Refactoring, higher levels of abstract nonsense