Seperate the interpreter and the driver loop