implements Update interface