An example of how to use NSOperationQueue and NSInvocationOperation to separate work from the main/UI thread