added a fast vm, after some experimenting with various implementation strategies