This is the core of the BnB API implementation.
Note that all interfaces and abstract classes are for the final user; others classes are used by the API implementation.