first finalised version of new interpreter