Added NSOperation for background thread processing