A lot of refactoring, too much without a commit