 
 // each type has its own random
 
-extension Int {
+public extension Int {
     /// SwiftRandom extension
-    static func random(lower: Int = 0, _ upper: Int = 100) -> Int {
+    public static func random(lower: Int = 0, _ upper: Int = 100) -> Int {
         return lower + Int(arc4random_uniform(UInt32(upper - lower + 1)))
     }
 }
 
-extension Bool {
+public extension Bool {
     /// SwiftRandom extension
-    static func random() -> Bool {
+    public static func random() -> Bool {
         return Int.random() % 2 == 0
     }
 }
 
-extension NSDate {
+public extension NSDate {
     /// SwiftRandom extension
-    static func randomWithinDaysBeforeToday(days: Int) -> NSDate {
+    public static func randomWithinDaysBeforeToday(days: Int) -> NSDate {
         let today = NSDate()
         
         guard let gregorian = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) else {

    }
}

extension Array {
    /// SwiftRandom extension
    func randomItem() -> Element {
        let index = Int(arc4random_uniform(UInt32(self.count)))
        return self[index]
    }
}

extension NSURL {
    /// SwiftRandom extension
    class func randomURL() -> NSURL {
        return NSURL(string: Randoms.randomFakeURLString())!
    }
}

struct Randoms {
    
    //==========================================================================================================
    // MARK: - Object randoms
    //==========================================================================================================
    
    static func randomInt(lower: Int = 0, _ upper: Int = 100) -> Int {
        return Int.random(lower, upper)
    }
    
    static func randomPercentageisOver(percentage: Int) -> Bool {
        return Int.random() > percentage
    }
    
    static func randomBool() -> Bool {
        return Bool.random()
    }
    
    static func randomDateWithinDaysBeforeToday(days: Int) -> NSDate {
        return NSDate.randomWithinDaysBeforeToday(days)
    }
    
    static func randomDate() -> NSDate {
        return NSDate.random()
    }
    
    static func randomCGFloat() -> CGFloat {
        return CGFloat.random()
    }
    
    static func randomColor(randomAlpha: Bool = false) -> UIColor {
        return UIColor.random(randomAlpha)
    }
    
    static func randomNSURL() -> NSURL {
        return NSURL.randomURL()
    }
    

    }
    
    /// SwiftRandom extension
    public static func random() -> NSDate {
        let randomTime = NSTimeInterval(arc4random_uniform(UInt32.max))
        return NSDate(timeIntervalSince1970: randomTime)
    }
    
}

public extension CGFloat {
    /// SwiftRandom extension
    public static func random() -> CGFloat {
        return CGFloat(Float(arc4random()) / Float(UINT32_MAX))
    }
}

public extension UIColor {
    /// SwiftRandom extension
    public static func random(randomAlpha: Bool = false) -> UIColor {
        let randomRed = CGFloat.random()
        let randomGreen = CGFloat.random()
        let randomBlue = CGFloat.random()
