interpreter routine