see if weak references fixes it