change return type for sharedInstance