weaken refs to $self for use in callbacks

seems to fix gh-21