 
 import UIKit
 
+/**
+ Struct storing `title`, `textColor` and `backgroundColor`.
+ */
 public struct MenuElement {
 
-    var title: String
-    var textColor: UIColor
-    var backgroundColor: UIColor
-    
-}
-
-enum SidebarMenuError: ErrorType {
-    
-    case DifferentNumberOfControllersAndMenuElements(controllersCount: Int, menuElementsCount: Int)
+    public var title: String
+    public var textColor: UIColor
+    public var backgroundColor: UIColor
+    
+}
+
+public enum SidebarMenuError: ErrorType {
+    
+    case NumberOfControllersAndMenuElementsAreNotEqual(controllersCount: Int, menuElementsCount: Int)
     
 }
 

    
    private func validateCounts<T, U>(a: [T], _ b: [U]) throws {
        if a.count != b.count {
            throw SidebarMenuError.DifferentNumberOfControllersAndMenuElements(controllersCount: a.count, menuElementsCount: b.count)
        }
    }
    

            }
        }
    }
    
    /**
     The overlay's color.
     */
    public var overlayColor = UIColor.clearColor() {
        didSet {
            overlay.backgroundColor = overlayColor
        }
    }
    
    /**
     The overlay's alpha value.
     The value of this property is a floating-point number in the range 0.0 to 1.0, where 0.0 represents totally transparent and 1.0 represents totally opaque. This value affects only the current view and does not affect any of its embedded subviews.
     */
    public var overlayAlpha: CGFloat = 0.0 {
        didSet {
            overlay.alpha = overlayAlpha
