         return ConversionContext(originalValue: original, result: .Success(val))
     }
 
-    func asInt() -> ValueReader<String, Int> {
+    func asInt() -> ConversionStep<String, Int> {
         func convert(s: String, ov: OriginalValue) -> ConversionResult<Int, ExtractError> {
             do {
                 let parsed = try self.parser.parseInt(ov.name, value: s)

    func readValue() -> ConversionContext<Output, ExtractError>
}

extension VRP where Output == Int {
    func range(r: Range<Int>) -> ValueReader<Int, Int> {
        func input() -> ConversionContext<Int, ExtractError> {
            return self.readValue()
        }

            }
        }

        return ConversionStep(input: self.inputForReader, convert: convert)
    }

    func asBool() -> ConversionStep<String, Bool> {
        func convert(s: String, ov: OriginalValue) -> ConversionResult<Bool, ExtractError> {
            let bval = (s as NSString).boolValue
            return .Success(bval)
        }

        return ConversionStep(input: self.inputForReader, convert: convert)
    }
}
