         /// Deconstructs an Array at the given path (key).
         ///
         /// https://docs.mongodb.com/manual/reference/operator/aggregation/unwind/#pipe._S_unwind
-        @discardableResult
-        public static func unwind(atPath path: String, includeArrayIndex: String? = nil, preserveNullAndEmptyArrays: Bool? = nil) -> Stage {
+        public static func unwind(_ path: String, includeArrayIndex: String? = nil, preserveNullAndEmptyArrays: Bool? = nil) -> Stage {
             let unwind: BSON.Primitive
             
             if let includeArrayIndex = includeArrayIndex {

        }
        
        /// Takes a sample with the size of `size`. These randomly selected Documents will be passed to the next stage.
        @discardableResult
        public static func sample(sizeOf size: Int) -> Stage {
            return Stage([
                "$sample": ["size": size]

        }
        
        /// Performs a left outer join to an unsharded collection in the same database
        public static func lookup(from collection: Collection, localField: String, foreignField: String, as: String) -> Stage {
            return Stage([
                "$lookup": [
