change performBlockAndWait to performBlock