Instead of singleton, use static to allow user change the sharedManager