add #update tests
implement #update