singleton and interpreter