An even bigger refactoring round!