re-factor to be a real interpreter

not just a Python code generator