more refactoring of the Model