All the refactoring