parametize heap. get gc to run even while sub exec. collect-gc is now pure function.