It's funny because the whole reason I changed it to not use `-performSelector:afterDelay:` is because we're not guaranteed to have a runloop here.