      adjust the next delay and Operation.
 
      */
-    public convenience init<D, G where D: GeneratorType, D.Element == Delay, G: GeneratorType, G.Element == T>(maxCount max: Int?, delay: D, generator: G, retry: Handler) {
+    public init<D, G where D: GeneratorType, D.Element == Delay, G: GeneratorType, G.Element == T>(maxCount max: Int?, delay: D, generator: G, retry block: Handler) {
         let tuple = TupleGenerator(primary: generator, secondary: delay)
-        self.init(maxCount: max, generator: anyGenerator(tuple), retry: retry)
+        retry = RetryGenerator(generator: anyGenerator(tuple), retry: block)
+        super.init(maxCount: max, generator: anyGenerator(retry))
+        name = "Retry Operation"
     }
 
     /**

    let retry: RetryGenerator<T>

    /**
     The designated initializer
     
     Creates an operation which will retry executing operations in the face
     of errors.


     */
    public convenience init<G where G: GeneratorType, G.Element == T>(maxCount max: Int? = 5, strategy: WaitStrategy = .Fixed(0.1), _ generator: G, retry: Handler = { ($1, $2) }) {
        self.init(maxCount: max, delay: MapGenerator(strategy.generator()) { Delay.By($0) }, generator: generator, retry: retry)
    }

    public override func operationDidFinish(operation: NSOperation, withErrors errors: [ErrorType]) {
