factorize "*OnDoneEvent" methods