 
 // MARK: Password Validation
 
-class NJOPasswordValidator: NSObject
+public class NJOPasswordValidator: NSObject
 {
     private var _rules: [NJOPasswordRule]! = nil
     
-    convenience init(rules: [NJOPasswordRule])
+    public convenience init(rules: [NJOPasswordRule])
     {
         self.init()
         _rules = rules
     }
     
-    class func standardValidator() -> NJOPasswordValidator
+    public class func standardValidator() -> NJOPasswordValidator
     {
         return NJOPasswordValidator(rules: [NJOLengthRule(min: 6, max: 24)])
     }
     
-    class func standardLengthRule() -> NJOLengthRule
+    public class func standardLengthRule() -> NJOLengthRule
     {
         return NJOLengthRule(min: 6, max: 24)
     }
     
-    func validatePassword(password: String) -> [NJOPasswordRule]?
+    public func validatePassword(password: String) -> [NJOPasswordRule]?
     {
         var failingRules: [NJOPasswordRule] = []
         

    }
}

class NJODictionaryWordRule: NSObject, NJOPasswordRule
{
    private var nonLowercaseCharacterSet = NSCharacterSet.lowercaseLetterCharacterSet().invertedSet
    
    func evaluateWithString(string: String) -> Bool
    {
        return UIReferenceLibraryViewController.dictionaryHasDefinitionForTerm(string.lowercaseString.stringByTrimmingCharactersInSet(nonLowercaseCharacterSet))
    }
    
    func localizedErrorDescription() -> String
    {
        return NSLocalizedString("NAVAJO_DICTIONARYWORD_ERROR", tableName: nil, bundle: NSBundle.mainBundle(), value: "Must not be dictionary word", comment: "Navajo - Dictionary word rule")
    }
}

class NJOLengthRule: NSObject, NJOPasswordRule
{
    private var _range: NSRange! = nil
    
    convenience init(min: Int, max: Int)
    {
        self.init()
        _range = NSMakeRange(min, max - min + 1)
    }
    
    func evaluateWithString(string: String) -> Bool
    {
        if _range == nil
        {

        return (string as NSString).rangeOfCharacterFromSet(requiredCharacterSet).location == NSNotFound
    }
    
    public func localizedErrorDescription() -> String
    {
        if let preset = _preset
        {
