         return _predicate.evaluateWithObject(string)
     }
     
-    func localizedErrorDescription() -> String
+    public func localizedErrorDescription() -> String
     {
         return NSLocalizedString("NAVAJO_PREDICATE_ERROR", tableName: nil, bundle: NSBundle.mainBundle(), value: "Must not match predicate", comment: "Navajo - Predicate rule")
     }
 }
 
-class NJORegularExpressionRule: NSObject, NJOPasswordRule
+public class NJORegularExpressionRule: NSObject, NJOPasswordRule
 {
     private var _regularExpression: NSRegularExpression! = nil
     
-    convenience init(regularExpression: NSRegularExpression)
+    public convenience init(regularExpression: NSRegularExpression)
     {
         self.init()
         _regularExpression = regularExpression
     }
     
-    func evaluateWithString(string: String) -> Bool
+    public func evaluateWithString(string: String) -> Bool
     {
         if _regularExpression == nil
         {

    }
}

class NJOAllowedCharacterRule: NSObject, NJOPasswordRule
{
    private var disallowedCharacters: NSCharacterSet! = nil
    
    convenience init(characterSet: NSCharacterSet)
    {
        self.init()
        disallowedCharacters = characterSet.invertedSet
    }
    
    func evaluateWithString(string: String) -> Bool
    {
        if disallowedCharacters == nil
        {

        }
    }
    
    public convenience init(characterSet: NSCharacterSet)
    {
        self.init()
        requiredCharacterSet = characterSet
    }
    
    public func evaluateWithString(string: String) -> Bool
    {
        if requiredCharacterSet == nil
        {
