add update and remove, and transform support, pass all tests