Initial refactoring. Added an object representing an actual model.