add REQUIRE and minor changes