object oriented update