Added abstraction layer and began adding extension properties for completed model.