registration...
so this is pretty much working, and weakref cleanup seems to work too,
but the memusage tests are failing all over the place, so I guess it doesn't really work.
OK this passes everything, still some scary warnings I'd like to figure out,
and overall this is definitely more complicated than I'd prefer