update basic design of interpreter