Async
Syntactic sugar in Swift for asynchronous dispatches
...Custom queues, dispatch block after delay, cancel blocks that aren't already dispatched. 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.