improved user object handling so that unchanged objects don't get sent to the database