     ///   other futures become determined.
     /// - seealso: SequenceType.allFutures
     public func and<Other1: FutureType, Other2: FutureType>(one: Other1, _ two: Other2) -> Future<(Value, Other1.Value, Other2.Value)> {
-        return Future(flatMap { t in
+        return flatMap { t in
             one.flatMap { u in
                 two.map { v in (t, u, v) }
             }
-        })
+        }
     }
     
     /// Composes this future with others.

    ///   the given future become determined.
    /// - seealso: SequenceType.allFutures
    public func and<OtherFuture: FutureType>(other: OtherFuture) -> Future<(Value, OtherFuture.Value)> {
        return Future(flatMap { t in other.map { u in (t, u) } })
    }
    
    /// Composes this future with others.

    ///   other futures become determined.
    /// - seealso: SequenceType.allFutures
    public func and<Other1: FutureType, Other2: FutureType, Other3: FutureType>(one: Other1, _ two: Other2, _ three: Other3) -> Future<(Value, Other1.Value, Other2.Value, Other3.Value)> {
        return flatMap { t in
            one.flatMap { u in
                two.flatMap { v in
                    three.map { w in (t, u, v, w) }
                }
            }
        }
    }
}
