V0.4.6: [updated] added getInstance to ensure single instance throughout the app