add completion&failure block