finished interpreter, tests