Actual refactoring from the last commit, the previous one was just the
new empty files