fix typos
use more standard info keys for errors
use CFBridgingRelease
use background queues correctly
use DISPATCH_QUEUE_SERIAL