http://www.raywenderlich.com/19788/how-to-use-nsoperations-and-nsoperationqueues