complementary update