here's a first wack at doing the vm