Start refactoring by adding a serializable base object and making modelAbstract pure virtual.