a more involved ScriptInterpreter example