Consolidate create/update branching to 1 fn