     public static func onFirstStart(block: (isFirstStart: Bool) -> ()) {
         let defaults = NSUserDefaults.standardUserDefaults()
         let hasBeenOpened: Bool = defaults.boolForKey(BFHasBeenOpened)
-        if hasBeenOpened == false {
+        if hasBeenOpened != true {
             defaults.setBool(true, forKey: BFHasBeenOpened)
             defaults.synchronize()
         }

/// Used to store the BFHasBeenOpened in defaults
private let BFHasBeenOpened = "BFHasBeenOpened"
/// Used to store the BFHasBeenOpenedForCurrentVersion in defaults
private let BFHasBeenOpenedForCurrentVersion = "BFHasBeenOpened\(APP_VERSION)"

/// Get App name
public let APP_NAME: String = NSBundle(forClass: BFApp.self).infoDictionary!["CFBundleDisplayName"] as! String

    public static func onFirstStartForCurrentVersion(block: (isFirstStartForCurrentVersion: Bool) -> ()) {
        let defaults = NSUserDefaults.standardUserDefaults()
        let hasBeenOpenedForCurrentVersion: Bool = defaults.boolForKey(BFHasBeenOpenedForCurrentVersion)
        if hasBeenOpenedForCurrentVersion != true {
            defaults.setBool(true, forKey: BFHasBeenOpenedForCurrentVersion)
            defaults.synchronize()
        }
        
       block(isFirstStartForCurrentVersion: !hasBeenOpenedForCurrentVersion)
    }
    
    /**
     Executes a block on first start of the App for current given version.
     Remember to execute UI instuctions on main thread
     
     - parameter version: Version to be checked
     - parameter block:   The block to execute, returns isFirstStartForVersion
     */
    public static func onFirstStartForVersion(version: String, block: (isFirstStartForVersion: Bool) -> ()) {
        let defaults = NSUserDefaults.standardUserDefaults()
        let hasBeenOpenedForVersion: Bool = defaults.boolForKey(BFHasBeenOpened + "\(version)")
        if hasBeenOpenedForVersion != true {
            defaults.setBool(true, forKey: BFHasBeenOpened + "\(version)")
            defaults.synchronize()
        }
        
        block(isFirstStartForVersion: !hasBeenOpenedForVersion)
    }
    
    /// Returns if is the first start of the App
    public static var isFirstStart: Bool {
        let defaults = NSUserDefaults.standardUserDefaults()
        let hasBeenOpened: Bool = defaults.boolForKey(BFHasBeenOpened)
        if hasBeenOpened != true {
            return true
        } else {
            return false
        }
    }
    
    /// Returns if is the first start of the App for current version
    public static var isFirstStartForCurrentVersion: Bool {
        let defaults = NSUserDefaults.standardUserDefaults()
        let hasBeenOpenedForCurrentVersion: Bool = defaults.boolForKey(BFHasBeenOpenedForCurrentVersion)
        if hasBeenOpenedForCurrentVersion != true {
            return true
        } else {
            return false
        }
    }
    
    /**
     Returns if is the first start of the App for the given version
     
     - parameter version: Version to be checked
     
     - returns: Returns if is the first start of the App for the given version
     */
    public static func isFirstStartForVersion(version: String) -> Bool {
        let defaults = NSUserDefaults.standardUserDefaults()
        let hasBeenOpenedForCurrentVersion: Bool = defaults.boolForKey(BFHasBeenOpened + "\(version)")
        if hasBeenOpenedForCurrentVersion != true {
            return true
        } else {
            return false
        }
    }
}
