VM states

this is branched from #3, so that one has to be merged in first.