         super.init()
         task = session.dataTaskWithRequest(req)
         DelegateManager.sharedInstance.addResponseForTask(task)
+		state = .Ready
     }
     
     //MARK: Subclassed NSOperation Methods

    
    ///the actual task
    var task: NSURLSessionDataTask!
    /// Reports if the task is currently running
    private var running = false
    /// Reports if the task is finished or not.
    private var done = false
    /// Reports if the task is cancelled
    private var _cancelled = false
    
    /**
    creates a new HTTP request.
    */

    If you aren't using the DelegateManager, you will have to call this in your delegate's URLSession:dataTask:didCompleteWithError: method
    */
    public func finish() {
		state = .Finished
    }
	
	/**
	Check not executing or finished when adding dependencies
	*/
	override public func addDependency(operation: NSOperation) {
		assert(state < .Executing, "Dependencies cannot be modified after execution has begun.")
		super.addDependency(operation)
	}
	
	/**
	Convenience bool to flag as operation userInitiated if necessary
	*/
	var userInitiated: Bool {
		get {
			return qualityOfService == .UserInitiated
		}
		set {
			assert(state < State.Executing, "Cannot modify userInitiated after execution has begun.")
			qualityOfService = newValue ? .UserInitiated : .Default
		}
	}

    /**
    Class method to create a GET request that handles the NSMutableURLRequest and parameter encoding for you.
    */
