split out interpreter