 
 	// MARK: - Properties
 
-	let textLabel: NSTextField = {
+	private let textLabel: NSTextField = {
 		let label = NSTextField()
 		label.translatesAutoresizingMaskIntoConstraints = false
 		label.editable = false

	}

	override init!(frame: NSRect, isPreview: Bool) {
		super.init(frame: frame, isPreview: isPreview)
		initialize()
	}

	required init?(coder: NSCoder) {
		super.init(coder: coder)
		initialize()
	}


	// MARK: - Private

	/// Shared initializer
	private func initialize() {
		// Set animation time interval
		animationTimeInterval = 1 / 30

		// Recall preferences
		birthday = Preferences().birthday

		// Setup the label
		addSubview(textLabel)
		addConstraints([
			NSLayoutConstraint(item: textLabel, attribute: .CenterX, relatedBy: .Equal, toItem: self, attribute: .CenterX, multiplier: 1, constant: 0),
			NSLayoutConstraint(item: textLabel, attribute: .CenterY, relatedBy: .Equal, toItem: self, attribute: .CenterY, multiplier: 1, constant: 0)
		])

		// Listen for configuration changes
		NSNotificationCenter.defaultCenter().addObserver(self, selector: "motivationLevelDidChange:", name: Preferences.motivationLevelDidChangeNotificationName, object: nil)
		NSNotificationCenter.defaultCenter().addObserver(self, selector: "birthdayDidChange:", name: Preferences.birthdayDidChangeNotificationName, object: nil)
	}

	/// Motiviation level changed
	@objc private func motivationLevelDidChange(notification: NSNotification?) {
		motivationLevel = Preferences().motivationLevel
	}

	/// Birthday changed
	@objc private func birthdayDidChange(notification: NSNotification?) {
		birthday = Preferences().birthday
	}
