more work on the refactored interpreter