fully persistent stack