Made default constructor private so that developers need to go through SharedInstance