Re-wrote the project model.