vstack major refactor
vstack major refactor

original commit: vintage-software/vstack@60495729447b8b123cbc942bd3f07280da2b0cb6

split from 8a83f29d5c969ec8dd41535051a28fd502c63f2b

vintage-software/vstack