add @Nonnull enforcement
organize build logic
add @Nonnull checks to api
organize build logic
add tests for api module