delegate is now weakly retained