add abstract machine interpreter