vstack major refactor
vstack major refactor

original commit: vintage-software/vstack@d5ea3c557acf0e7ef3df1405e5d4625ba6cf820e

split from d0c3cafe796172ecf7ed76b4d4a4d8b74c66af76

vintage-software/vstack