separate toy interpreter and vm