finish draft implementation of interpreter