Async
Syntactic sugar in Swift for asynchronous dispatches
...The way it work is by using the new notification API for GCD introduced in OS X 10.10 and iOS 8. Each chaining block is called when the previous queue has finished. The dispatch_block_t can't be extended. Workaround used, Wrap dispatch_block_t in a struct that takes the block as a property. AsyncGroup facilitates working with groups of asynchronous blocks.