reimplemented inner interpreter