Changed threading around to use solely Grand Central Dispatch