##1. REFERENCE COUNTING * Keep a count of the number of pointers to each object, incrementing/decrementing it as variable come in/go out of scope.
##2. CYCLE DETECTION * Use any one of various methods in the literature to detect cyclical references.
##3. FREEING UNUSED MEMORY * Periodically, go through the memory use table and free all objects with reference count 0.