start refactoring update()/delete()
significant rewrite of model update/delete; breaks ud-mailgate