Delegate should not have `retain` flag because of retain cycles.