  closure when the operation did just finish.
  */
 public struct DidFinishObserver: OperationDidFinishObserver {
-    public typealias BlockType = (Operation, [ErrorType]) -> Void
-
-    private let block: BlockType
+    public typealias BlockType = (operation: Operation, errors: [ErrorType]) -> Void
+
+    private let block: BlockType
+
+    /// - returns: a block which is called when the observer is attached to an operation
+    public var didAttachToOperation: DidAttachToOperationBlock? = .None
 
     /**
      Initialize the observer with a block.

    let didProduce: ProducedOperationObserver?
    let willFinish: WillFinishObserver?
    let didFinish: DidFinishObserver?

    /**
     A `OperationObserver` which accepts three different blocks for start,


    /// Conforms to `OperationDidCancelObserver`, executes the block
    public func didCancelOperation(operation: Operation) {
        block(operation: operation)
    }

    /// Base OperationObserverType method
    public func didAttachToOperation(operation: Operation) {
        didAttachToOperation?(operation: operation)
    }
}

