implement part of interpreter