         }
         return errors
     }
-    
-    public func validators() -> [String: Validator] {
+    public func validators(action: Action) -> [String: Validator] {
         return [:]
     }
 }



extension ActiveRecord {
    public var errors: Errors { return self.validate() }
    public var isValid: Bool { return self.validate().isEmpty }
    
    public func validate() -> Errors {
        var errors = Errors(model: self)
        let validators = self.validators()
        for (attribute, value) in self.attributes {
            if let validator = validators[attribute] {
                validator.validate(self, attribute: attribute, value: value, errors: &errors)

    case Save
}

public enum Action {
    case Create
    case Update
    case Delete
}

public protocol ActiveRecord: class, AnyType, Transformable {
    var id: AnyType? {set get}
    init()
    init(attributes: [String:AnyType?])
