Major refactoring of the project.