Heavily updated the Domain Model