alternate weaktostrong implementation, seems to be working so far