update() should return self