package org.basesource.vending.io.impl;

import org.basesource.vending.io.InputProvider;

import java.util.Scanner;

public class TerminalInputProvider implements InputProvider<String> {

    protected Scanner in = new Scanner(System.in);

    @Override
    public String get(String tag) {
        return in.nextLine();
    }
}

@@ -68,49 +68,181 @@
 ing.
-io.InputProvider;%0A%0Aimport java.util.Scann
+exception.MachineRuntimeException;%0Aimport org.basesource.vending.io.InputProvider;%0A%0Aimport java.io.BufferedReader;%0Aimport java.io.IOException;%0Aimport java.io.InputStreamRead
 er;%0A
@@ -331,30 +331,66 @@
 ted 
-Scanner in = new Scann
+BufferedReader in = new BufferedReader(new InputStreamRead
 er(S
@@ -398,16 +398,17 @@
 stem.in)
+)
 ;%0A%0A    @
@@ -449,16 +449,17 @@
 ing tag)
+ 
  %7B%0A     
@@ -465,28 +465,244 @@
     
-return in.nextLine()
+try %7B%0A            return in.readLine();%0A        %7D catch (IOException e) %7B%0A            throw new MachineRuntimeException(e, %22Error: Machine IO Problem..%22);%0A        %7D%0A    %7D%0A%0A    public void reader(BufferedReader in) %7B%0A        this.in = in
 ;%0A  

refactor input stream.