re factored: TypeChecker, Values, Visitor, AST inheritance structure, Interpreter, new Input Form, new TypeError, new ValueError