changed implementation of performBlock:afterDelay: using dispatch_after