implements of singleton factory