A better dispatch_async() with functional programming in mind