Implement most of interpreter