Replaced dispatch_queue with NSThread to get a separate runloop