cleaned up interpreter