`self` needs to be weak/strong danced in here.