Concurrency, callbacks and closures through blocks, GCD and NSOperation