Using a singleton factory to create classes extending an abstract implem...

...enting an interface