generic garbage collector for whatever