outlining the basic interpreter workflow