Add IFactory interface