finally a working interpreter