Move vp into own package

I'll fix the comments of course. Making the package global, means that test can no longer safely run in parallell, so I'd rather not do that unless it is required.