The delegate should be weak to save a lot of trouble for developers.