perhaps slightly more efficient to skip the id props in the set clauses