Many changes - Important Note GCD used for block callbacks to avoid hanging the main thread in the event of large callbacks
delete