 
     /// Conforms to `OperationDidStartObserver`, executes the block
     public func didStartOperation(operation: Operation) {
-        block(operation)
+        block(operation: operation)
+    }
+
+    /// Base OperationObserverType method
+    public func didAttachToOperation(operation: Operation) {
+        didAttachToOperation?(operation: operation)
     }
 }
 

    public func didFinishOperation(operation: Operation, errors: [ErrorType]) {
        didFinish?.didFinishOperation(operation, errors: errors)
    }
}



 closure when the operation is about to finish.
 */
public struct WillFinishObserver: OperationWillFinishObserver {
    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.
