improved interpreter