Bring over all usable parts of data model

Also bring in factories so we can keep tests associated with path hash gen