TODO: cpp version of Interpreter