refacto object update