avoid multiple object creation of singleton