vstack major refactor
vstack major refactor

original commit: vintage-software/vstack@99e38a9239745e67d18f36193cc2c0b6b4f5bad0

split from 039b5094bf92f14437e92a75d58a7e9afd6cf306

vintage-software/vstack