first pass on update