improvements on interpreter