Switched to instancetype as return type for +sharedInstance