     // MARK: Review Alert & Properties
     
     #if os(iOS)
-    fileprivate var ratingAlert: UIAlertView? = nil
     fileprivate let reviewURLTemplate  = "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&id=APP_ID&at=AFFILIATE_CODE&ct=AFFILIATE_CAMPAIGN_CODE&action=write-review"
     #elseif os(OSX)
     private var ratingAlert: NSAlert? = nil

    // MARK: PRIVATE Alert View / StoreKit Delegate Methods
    
    #if os(iOS)
    open func alertView(_ alertView: UIAlertView, didDismissWithButtonIndex buttonIndex: Int) {
        // cancelButtonIndex is set to -1 to show the cancel button up top, but a tap on it ends up here with index 0
        if (alertView.cancelButtonIndex == buttonIndex || 0 == buttonIndex) {
            // they don't want to rate it
            dontRate()
        } else if (showsRemindButton() && 1 == buttonIndex) {
            // remind them later
            remindMeLater()
        } else {
            // they want to rate it
            _rateApp()
        }
    }
    
    //Delegate call from the StoreKit view.
    open func productViewControllerDidFinish(_ viewController: SKStoreProductViewController!) {

            }
        } else {
            #if os(iOS)
                /* iOS 8 uses new UIAlertController API*/
                    let alertView : UIAlertController = UIAlertController(title: reviewTitle, message: reviewMessage, preferredStyle: UIAlertControllerStyle.alert)
                    alertView.addAction(UIAlertAction(title: cancelButtonTitle, style:UIAlertActionStyle.cancel, handler: {
                        (alert: UIAlertAction!) in
