changed singleton to sharedInstance