DRYer models; create/update