improve requirement checking.