 
         switch state {
         case .Rejected(let error):
-            return Promise<U>(error: error);
+            return Promise<U>(error: error)
         case .Fulfilled(let value):
             return dispatch_promise(to:q){
                 bind(value(), $0, $1)

    public func then<U>(onQueue q:dispatch_queue_t = dispatch_get_main_queue(), body:(T) -> U) -> Promise<U> {
        switch state {
        case .Rejected(let error):
            return Promise<U>(error: error);
        case .Fulfilled(let value):
            return dispatch_promise(to:q){ d in d.fulfiller(body(value())) }
        case .Pending:

        }
        func rejecter(err: NSError) {
            if self.pending {
                self.state = .Rejected(err)
                recurse()
            }
        }
        func fulfiller(obj: T) {
            if self.pending {
                self.state = .Fulfilled(obj)
                recurse()
            }
        }
