Move vp into own package

I didn't ask. We can of course, just thought it not worth the trouble. On the other hand I grepped around and found 4 or 5 versions of this function, with at lest *three*different implementations...