same comment as before, no need to check if you were actually passed a delegate, just if self exists