             button.center = contentView.center
             button.frame.offset(dx: -contentView.frame.origin.x, dy: -contentView.frame.origin.y)
             button.frame.offset(dx: 0, dy: -80 + CGFloat(index * baseOffset))
-
+            
+            // TODO: New func to setUnauthorizedStyle ? new tintColor also ?
+            // Question: Use (XXX, YYY) tuple instead of case XXX: if status() = YYY ? => Each Permission should know how to get it's status
             let type = configuredPermissions[index].type
             switch type {
             case .LocationAlways:
                 if statusLocationAlways() == .Authorized {
                     setButtonAuthorizedStyle(button)
                     button.setTitle("Got Location".uppercaseString, forState: UIControlState.Normal)
+                } else if statusNotifications() == .Unauthorized {
+                    setButtonUnauthorizedStyle(button)
+                    button.setTitle("Denied Location".uppercaseString, forState: UIControlState.Normal)
                 }
             case .LocationInUse:
                 if statusLocationInUse() == .Authorized {
                     setButtonAuthorizedStyle(button)
                     button.setTitle("Got Location".uppercaseString, forState: UIControlState.Normal)
+                } else if statusLocationInUse() == .Unauthorized {
+                    setButtonUnauthorizedStyle(button)
+                    button.setTitle("Denied Location".uppercaseString, forState: UIControlState.Normal)
                 }
             case .Contacts:
                 if statusContacts() == .Authorized {
                     setButtonAuthorizedStyle(button)
                     button.setTitle("Allowed Contacts".uppercaseString, forState: UIControlState.Normal)
+                } else if statusContacts() == .Unauthorized {
+                    setButtonUnauthorizedStyle(button)
+                    button.setTitle("Denied \(type.rawValue)".uppercaseString, forState: UIControlState.Normal)
                 }
             case .Notifications:
                 if statusNotifications() == .Authorized {
                     setButtonAuthorizedStyle(button)
                     button.setTitle("Allowed Notifications".uppercaseString, forState: UIControlState.Normal)
+                } else if statusNotifications() == .Unauthorized {
+                    setButtonUnauthorizedStyle(button)
+                    button.setTitle("Denied \(type.rawValue)".uppercaseString, forState: UIControlState.Normal)
+                }
                 }
             }
 


    public func statusLocationAlways() -> PermissionStatus {
        let status = CLLocationManager.authorizationStatus()
        if status == CLAuthorizationStatus.AuthorizedAlways {
            return .Authorized
        }

        return .Unknown
    }

    func requestLocationAlways() {
        if statusLocationAlways() != .Authorized {
            locationManager.delegate = self
            locationManager.requestAlwaysAuthorization()
        }
    }


        let settings = UIApplication.sharedApplication().currentUserNotificationSettings()
        if settings.types != UIUserNotificationType.None {
            return .Authorized
        } else {
            return .Unauthorized
        }
        
        //        return .Unknown
    }
    
    func requestNotifications() {
        if statusNotifications() != .Authorized {
            UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert | .Sound | .Badge, categories: nil))
            self.pollForNotificationChanges()
        } else if statusContacts() == .Unauthorized {
            // TODO: Alert. User must go to Settings.
            self.showDeniedAlert(.Notifications)
        }
    }
        }
    }

