finished mark-and-sweep (lists now work)