Removed dependency on CFSocket to be 100% GCD based