added interpreter and tests