             button.layer.cornerRadius = 0.5 * button.bounds.size.width
             button.setTitle(daysOfWeek[index].name, forState: UIControlState.Normal)
         }
-        customizeButtonAppearance()
     }
     
+    /// Customizes the appearance of each button
     private func customizeButtonAppearance() {
         for (index, button) in daysOfWeekButtons.enumerate() {
             button.backgroundColor = daysOfWeek[index].selected ?  selectedColor :  unselectedColor
             button.titleLabel?.font = UIFont.systemFontOfSize(fontSize)
             button.setTitleColor(textColor, forState: UIControlState.Normal)
         }
+    }
+    
+    override func layoutSubviews() {
+        positionButtons()
+        customizeButtonAppearance()
     }
     
     // MARK: DayOfWeekPicker User Interaction

        }
    }
    
    override func layoutSubviews() {
        
        let areaUsedBySpacing = spacing * CGFloat(daysOfWeek.count + 1)
        let buttonSideLength = min((frame.width - areaUsedBySpacing) / CGFloat(daysOfWeek.count), frame.height)
        let buttonSize = CGSize(width: buttonSideLength, height: buttonSideLength)

    
    // MARK: Placing and Customizing the button's
    
    /// Creates and places the buttons for each day of the week
    private func createButtons() {
        for _ in daysOfWeek {
            let button = UIButton()
