AsyncComm overhaul