 
         let baseOffset = 95
         var index = 0
-        for config in configuredPermissions {
-            let button = permissionStyledButton(config.type)
+        for button in permissionButtons {
             button.center = contentView.center
             button.frame.offset(dx: -contentView.frame.origin.x, dy: -contentView.frame.origin.y)
             button.frame.offset(dx: 0, dy: -30 + CGFloat(index * baseOffset))
-            contentView.addSubview(button)
-
-            let label = permissionStyledLabel(config.message)
+
+            let type = configuredPermissions[index].type
+            switch type {
+            case .LocationAlways:
+                switch statusLocationAlways() {
+                case .Authorized:
+                    setButtonAuthorizedStyle(button)
+                    button.setTitle("Got Location".uppercaseString, forState: UIControlState.Normal)
+                default:
+                    break
+                }
+            case .LocationInUse:
+                switch statusLocationInUse() {
+                case .Authorized:
+                    setButtonAuthorizedStyle(button)
+                    button.setTitle("Got Location".uppercaseString, forState: UIControlState.Normal)
+                default:
+                    break
+                }
+            default:
+                break
+            }
+
+            let label = permissionLabels[index]
             label.center = contentView.center
             label.frame.offset(dx: -contentView.frame.origin.x, dy: -contentView.frame.origin.y)
             label.frame.offset(dx: 0, dy: 15 + CGFloat(index * baseOffset))
-            contentView.addSubview(label)
 
             index++
         }

        case .Contacts:
            button.setTitle("Allow Contacts".uppercaseString, forState: UIControlState.Normal)
        case .LocationAlways:
            switch statusLocationAlways() {
            case .Authorized:
                setButtonAuthorizedStyle(button)
                button.setTitle("Got Location".uppercaseString, forState: UIControlState.Normal)
            default:
                button.setTitle("Enable Location".uppercaseString, forState: UIControlState.Normal)
                button.addTarget(self, action: Selector("requestLocationAlways"), forControlEvents: UIControlEvents.TouchUpInside)
            }
        case .LocationInUse:
            switch statusLocationInUse() {
            case .Authorized:

    }

    func detectAndCallback() {
        self.view.setNeedsLayout()

        if let authChangeClosure = authChangeClosure {
            var resultStatuses: [PermissionResult] = []
