working garbage collector