vstack major refactor
vstack major refactor

original commit: vintage-software/vstack@834d75f0c9f8cb4c94f0fc27c25d1e380f5fed1b

split from a6351edd21711f156b0972c60f966e1d254045d9

vintage-software/vstack