Improved interpreter abstraction