move the code to createInterpreter()