fix holding a strong ref for both events, change to once_finished