             }
             return .Failure(ExtractError.IntRangeError(name: ov.name, value: i, range: r))
         }
-        return ValueReader(input: input, convert: convert)
+        return ConversionStep(input: input, convert: convert)
     }
 }
 

    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()
        }

    }
}

protocol ConversionStepProtocol {
    typealias Input
    typealias Output

