Refactored the model adding some Traits