Adding templated abstract factory class and multiton (Factories)