first pass at Model class