     /// The value that passes the three provided `Validator`s.
     public let value: WrapperType
 
-    /// Failable initializer that will only succeed if the provided value fulfills the requirements specified by the `Validator`s.
-    public init?(_ value: WrapperType) {
-        guard V1.validate(value) && V2.validate(value) && V3.validate(value) else { return nil }
-        self.value = value
+    /// Failible initializer that will only succeed if the provided value fulfills the requirements specified by the `Validator`.
+    public init?(value: WrapperType) {
     }
 }
 

    /// If you are able to access this property; it means the wrappedType passes the validator.
    public let value: WrapperType

    /// Failible initializer that will only succeed if the provided value fulfills the requirements specified by the `Validator`.
    public init?(_ value: WrapperType) {
        guard V.validate(value) else { return nil }
        self.value = value
    }
}

/// Wraps a type together with two validators. Provides a failable initializer
/// that will only return a value of `Validated` if the provided `WrapperType` value

    static func validate(value: WrappedType) -> Bool
}


/// Error that is thrown when a validation fails. Proivdes the validator type and 
/// the value that failed validation
public struct ValidatorError: ErrorType, CustomStringConvertible {
    /// The value that failed validation.
    public let wrapperValue: Any
    /// Type of a specific `Validator`. `Any` is used because `Validator` has associated type requirements.
    public let validator: Any.Type

    public var description: String {
        return "Value: '\(wrapperValue)' <\(wrapperValue.dynamicType)>, failed validation of Validator: \(validator.self)"
    }
}

/// Wraps a type together with one validator. Provides a failable initializer
/// that will only return a value of `Validated` if the provided `WrapperType` value
/// fulfills the requirements of the specified `Validator`.
