to create a more secure singleton