rewriting vm so it's nicer code