Do class factories also work with free pascal?

So in the baseclass i need to implement the assign funtion and i am there.
Then i can create a new object from the class i want to use for saving and use something like
var ModelToSave: TMsaModel;
ModelToSave := TMsaModel.Create(nil);
ModelToSave.Assign(ModelToLoad);
ModelToSave.SaveToFile('test.txt');
ModelToSave.Free;
Or i could place the above code in TModelLoadingManager as an safetoformat function.

So i have to make sure i clean up the copies as otherwise i could end up with a lot copies of the same object.

Next is Rendering. Assigning the model to an TGlModel for each render is not working nice. What could work is doing it once after loading and free the original meshes.
OR
Use the suggested seperate render class. The render class needs to read out details for the models. That way i could also optimize rendering by sending out all geometry at once and other things like that....

Thankt to you all...