outline of heap with an approach in comments, need work on gc