more robust requirement checking
more work on database sync