Move some code to the new dll files
new class with new abstract base class