add public 'update' function