Added DataModel and UIModel classes. Started to split the large model into smaller ones.