fixed delegate retain cycle.