further fleshing out data models, services, factories