Adding pre-declaration of classes, and interfacing the library to make non-dependant the kind of internal structure using