working the api, refactoring
+ RequireCompiler companion object
+ more tests and fixes