Further abstracting the interpreter