vstack major refactor
vstack major refactor

original commit: vintage-software/vstack@46b4f9c167919d68edc3f61e49bef1b2b34e9e87

split from 30ad85af364898822ab681c05d5c999a9d0e6ddc

vintage-software/vstack