We now use a memory allocater and counter, and allocate the dictionary straight out of the heap.  The stack and return stack are now separate memory regions outside of the heap for simplicity's sake.