I gues that i am using classes to do things that are normaly done with interfaces is making things clouded. And me implementing it 'badly' as i cannot to multiple inheritance from multiple classes, the additional ones have to be an real interface.

It is al intended to make things more maintainable e.g. seperating msa loading from 3ds loading and seperating loading from rendering. That gives me seperate projects that are easier to maintain. Having multiple file formats in one class makes it cluttered especially after more fileformats are added. Adding obj funtionality with the new classes would be just making an inherited version TLoadSaveModel.

The typecasts are not nice, but are they as bad as you say? I do like to hear some more opinions on this matter.

Tomorow i try to lose the reintroduce and replace them with override, see what is does.

The overiding of TModel from TBaseModel without addtional functions is also a thing i am not proud of. I just needed it as i want to use a generic way of representing a model without it being fileformat specific. And i feel a TBaseClass should not be used directly.