don't need __block attribute until we switch back to gcd synchronizers