segregated code from interpreter