Legend of Zelda: Tears of the Kingdom Taps the Ceiling of What Switch Can Do
ByCraig Jenkins,
a Vulture music critic who also covers TV, comedy, and video games
It’s a god game with the patina of a ronin story that makes you wonder, This is good, but is this as good as it gets? Photo: Nintendo
The legend began in a cave. Before his knack for billion-dollar ideas helped make Nintendo a titan in gaming, Shigeru Miyamoto, designer, producer, and director, grew up in postwar Kyoto Prefecture, close to the city but closer to verdant hills and serene forests. Without a television, he filled his days with books, art, and excursions into nature, including one that led him to a dark opening in the countryside, as he recalls in David Sheff’s Game Over: How Nintendo Conquered the World. When Miyamoto returned to explore it with a lantern, he found a second passageway inside the first. The memory of the cave and his youthful taste for discovery inspired the work that later made him an international celebrity: the colorful worlds traversed over countless incarnations of Super Mario Brothers, Metroid, and The Legend of Zelda, games that rewarded a keen eye with the thrill of uncovering secrets and that turned friend groups in neighborhoods and schools into informal tip networks invested in a better understanding of Miyamoto’s creations.
The Legend of Zelda added the gilded veneer of myth to the designer’s travels, putting players in the green tunic of Link, the silent elfin protagonist and uniter of peoples, dimensions, and timelines. The directors and mechanics have changed over the years, but the rhythm of Zelda games — the balance of convention and invention, the expanding and contracting ambitions of the franchise — has beat steadily for decades. A universally beloved installment would come out, and the next one would push the envelope. 1986’s The Legend of Zelda dropped players into an unfamiliar landscape of hidden passageways and intriguing caves, then 1987’s The Adventure of Link served players brutally difficult side-scrolling combat. 1991’s A Link to the Past offered a window into the destruction of Hyrule (a few years before Final Fantasy VI let its villain scorch the planet), then in 1993’s Link’s Awakening,you woke up on anunrelated island inhabited by characters inspired by Twin Peaks. 1998’s Ocarina of Time married gorgeous 3-D graphics, tight combat, and rich commentary on growth and decay, then 1999’s Majora’s Mask dove into comedy horror, science fiction, and rural absurdism. (That game has its fans, but others received it as if they were being shown Groundhog Day after buying a ticket for Back to the Future Part II). The whiplash of the dark themes and art style of 2006’s Twilight Princess following the seafaring cartoon quest of 2002’s The Wind Waker typified ’90s and aughts director Eiji Aonuma’s long tug-of-war with the fandom.
But on Switch, Zelda is breaking patterns. In 2011, Skyward Sword introduced director Hidemaro Fujibayashi (Oracle of Seasons and Ages; Four Swords; The Minish Cap)to the main series with an origin story that takes Link to the skies, soaring on a paraglider that opened up Wii gameplay as dramatically as Ocarina’s 3-D makeover. But rather than ditch the conventions of the previous installment, 2017’s Breath of the Wild built on the high-flying challenges of Skyward, presenting a vast, brutal, beautiful Hyrule on the newly released Switch, stuffed with unique puzzles, terrifying encounters, and arresting scenery. This month, The Legend of Zelda: Tears of the Kingdom, Fujibayashi’s follow-up to a massive hit, defies Zelda tradition yet again, daring to pick up directly with the world and story of the previous game, a rarity in a series with a relative aversion to direct sequels. In Tears of the Kingdom, everything is where it was, but nothing’s quite the same. The villain Ganon has been stopped, Princess Zelda has devoted her life to education and archaeology, and the people you met in scattered settlements and principalities are working to put their lives back together… until a disturbance nudges Link toward a second journey around Hyrule, one that sparks revelations about the region’s past, future, and geography. The deeper you get into the game — up into the Sky Islands or down into caves — the more it feels like Fujibayashi is telling a story that wraps its arms around the lore and ideas of the past two games, bookending Zelda’s millennia-spanning story with lively creation and apocalypse myths.
Fujibayashi’s Hyrule is a vast network of shrines, where you upgrade health and stamina, and temples, where you locate and defeat troublesome bosses. Several dozen hours and side quests (and shrines and two major temples) in, Tears of the Kingdom’sinterest in subverting expected outcomes on the way to familiar solutions is apparent. You start the game with the Master Sword and are tempted in every subsequent prompt to wave the thing around, but the plot isn’t clear, being parceled out only after story achievements. Meanwhile, Link is suspended somewhere between boyhood, manhood, and divinity, a Hercules who lets his arms do all the talking. Everyone is happy to see the silent swordsman, eager to exchange whatever goods and currency they’ve squirreled away for the chance to escape menacing monsters or procure supplies from locations reached by sailing on the wind (or, you know, teleporting). Tears is a god game with the patina of a ronin story. The great fairies are spooked; the villages of the humanlike Hylians are modernizing faster than the local elders care for; the stone Gorons and the birdlike Rito are experiencing identity crises tied to ecological changes; Hyrule’s reporters are stressed; and players eventually become embroiled in a juicy local election. There’s a real-world resonance to it all.
You show up to Tears to work wonders — panting and struggling, perpetually boxing above your presumed weight class — that your adoring public respects but fears. Link’s (techno-organic? chrono-kinetic?) powers make most NPCs jump, but it’s not enough to stop them piling on requests that are smoothed over by the bending of time and an ability to lift heavy objects with a wave of the hand. Link unravels the mystery of the Zonai, whose ruins can be found in Breath of the Wild, aided by the tech they left behind. Replacing the previous game’s telekinetic, bomb-spawning arsenal are the Ultrahand, Recall, Ascend, and Fuse abilities. Ultrahand feels like Breath’s Magnesis but glues random things together, making you think like a builder and trivializing challenges for anyone demented enough to create contraptions that supplant the game’s intentions. Recall one-ups Stasis, running the clock back on a huge variety of moving items; with sharp reflexes, it can return a vehicle you flew off a cliff. Ascend provides an exit strategy for caves and fights and takes a bit of the edge off verticality in a game that thrives on tickling your vertigo. (Don’t go too far before tracking down the Autobuild power, which indexes Ultrahand creations for summoning so you can bring the right Zonai mech or all-terrain vehicle to the fight.)
Fuse expands your arsenal of swords, staves, and clubs dramatically, undercutting the weapon degradation that previously made players wary of gratuitous, sword-breaking enemy encounters — and if you get weird with it, the game opens up immensely. A lively imagination is your most effective tool in Tears of the Kingdom, and finding the synergy between powers, weapons, and Zonai tech is a delight. Stick a mining cart to a shield for a skateboard, or combine that shield with a rocket for a block option that shoots you into the sky. Attaching items to arrows offers a fiendish palette of status effects, adding value to Tears’ myriad collectible critters, leading you into fights you would otherwise ignore and realizing Miyamoto’s decades-old dream of bomb-arrow fusions. The way your armada of perks slowly tips the difficulty scale in your favor as you discover crueler building blocks, like cannons and time bombs, gives Tears a customizability that stands out in the series but falls in line with modern trends in gaming. And it gives great footage: The Switch’s 30-second videos are punchy enough for TikTok; the map seems dense enough for years of YouTube lore explainers.
Everything in the game seems designed for the express purpose of goading you into deeper plundering. You don’t miss the endless supply of bombs in Breath of the Wild if you spend enough time in the caves. The depths are dark and terrifying, filled with enemies that hit hard and hamper your ability to recover health; they’re also your source for currency in the game’s chilling poe exchange (as well as sturdy weapons and crafting materials). Reaching the Sky Islands is a drain on your stamina, but the Zonai battery charges and unique vegetation there come in handy everywhere else on the map. Mini-bosses drop unique fusion materials: Fasten the heart of a giant stone Talus or the core from a Flux Construct — the giant box monster — to a strong enough weapon and you become one of the most dangerous forces on any field of play. Or use the billion tactical maneuvers at your disposal, stunning the enemy with a spicy pepper to the face. The challenges inside shrines nudge you toward even more elaborate traversal tricks (Makasura Shrine outside Kakariko Village introduces the Stabilizer — power it up and it springs itself, and a number of objects you may think to attach to it, into an upright position, goading you to slingshot yourself across a large, imposing pit — while Sinakawak Shrine in the Rito domain primes you for at least six months’ worth of outrageous flying devices.) Ascending and descending to temples net you a companion you can summon to the battlefield, slyly adjusting difficulty or abetting stylish gameplay sequences, another quiet game changer in a Zelda entry brimming with them.
The freedom to jump in and out of Hyrule’s atmosphere and subterrane; a nonlinear story of style influencers, workers’-rights violations, unnatural disasters, and cultural schisms; and the hundred paths to solving miles of puzzles make for a game that will take ages to finish unpacking. So it’s a touch frustrating that Tears hovers around 30fps six years after the prior game did, and, in a decade of visual marvels like Horizon Forbidden West, its incredible draw distances come at the cost of textures that can feel dated. You’re always gazing farther afield, though, scanning for points on the map where you’ll die exquisitely, valiantly, hilariously, and embarrassingly on the way to success. Tears is tapping the ceiling of what the Switch can do, like Ghost of Tsushima left us wondering if it represented the peak of the PS4’s capabilities. This is good; is this as good as it gets? Whatever happens to the Switch, The Legend of Zelda is in a great place. Fans seem happy. Aonuma, a producer on the series since ceding the director’s chair, sounds eager to maintain the momentum. Pushing player creativity brings us into the era of sandbox survival-crafting games like Rust, No Man’s Sky, and Fortnite while embracing the lore, gear, locations, and enemies of this series’ illustrious past. Will Tears stick the landing with a story on par with Breath of the Wild? Will familiarity breed contempt for future Zelda titles patterned after these last two? Who cares? There are homing arrows, rocket skates, and treasures in grottos to get to. There are Koroks to shoot at the moon.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(136),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(408),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"408":408,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]