What Happens in the Mirror Universe Where Topher Grace Made Venom Instead of Tom Hardy?
ByJoe Reid,
who has been covering movies and pop culture since 2007
Gooped.
Photo-Illustration: Vulture; Photo by Sony Pictures
It’s May 4, 2007, almost one year to the date before Iron Man’s premiere changes the face of blockbuster filmmaking. A different, intensely anticipated superhero movie is about to set worldwide box-office records and become Sony’s top-grossing movie of all time for the next five years. The movie is Spider-Man 3, and, despite ticket sales, people mostly hated it. Critics called the film messy, overstuffed with too many villains, including Thomas Haden Church as a man made of sand. Fans hated Tobey Maguire’s emo hair and the movie’s odd detour into a jazz club. Easily the worst of Sam Raimi’s three Spidey films, per consensus. But it did make all that money — nearly $900 million worldwide — so for years, Sony tried working with Raimi to make a fourth Spider-Man.
It never happened, and in 2012, the studio rebooted the franchise with Marc Webb behind the camera and Andrew Garfield in the Spidey suit. The Webb films struggled too, and ultimately Sony struck a deal that allowed Peter Parker, now played by Tom Holland, to enter the Marvel Cinematic Universe in 2016, and six appearances later (including three dedicated feature films), that’s where the franchise stands. But the promise of the unmade Raimi sequel remained tantalizing, particularly since the rumored plans for his subsequent Spider-Man stories included characters we’d see in later iterations of Spidey cinematic lore: John Malkovich was discussed to play Vulture, Bruce Campbell might’ve played Mysterio. And then there were the plans for Venom. Topher Grace, still best known for his role on That ’70s Show, played Peter Parker’s rival photographer Eddie Brock, who, after an alien symbiote attempts to infiltrate Peter’s body to no avail (well, it did turn him into a strutting, sneering jerk for second), ends up subsumed by the space goop himself. Born is Venom.
At the end of Spider-Man 3, both Eddie and the symbiote Venom meet a fiery end, but as is the case for so many superhero franchises, there were allegedly plans to bring him back for a spinoff movie anyway. That movie was going to reposition Eddie Brock as a kind of anti-hero, with Venom as his dark side. Obviously those plans disintegrated along with Raimi’s Spider-Man 4, but the seeds were sewn. Tom Hardy took on the role in 2018’s Venom, anti-heroism and all. But what if that original Venom spinoff movie did happen, with Topher Grace keeping the role? How different would the past 20-plus years of Spider-Man history look had Eddie Brock materialized onscreen a little sooner and looked a little … blonder? What happens in the mirror universe where Grace made Venom instead of Hardy?
1. Anne Hathaway is another cat.
2007–2009: Spider-Man 3 is what it is: a critically panned movie that still makes a ton of money for Sony Pictures. Talk of a fourth Spider-Man movie is ongoing but full of snags. Will Raimi decide to make another Spidey movie, sans Spidey, while Tobey Maguire nurses another back injury? Who would be the villain? One strong rumor is one that’s been circulating for years: Dylan Baker’s Dr. Curt Connors will turn into his comic-book villain the Lizard. Or will Raimi make good on his plans to elevate Bruce Campbell’s recurring cameo appearances into Quentin Beck, a.k.a. Mysterio? Will John Malkovich become the Vulture? Maybe Anne Hathaway, who’s in talks to play Felicia Hardy, will become the Black Cat?
Meanwhile, Avi Arad, who’d already clashed with Raimi while producing the Spider-Man films, wants to move forward with the character he wanted to see in Spider-Man 3: Eddie Brock and his dark, goopy possessor. Rhett Reese and Paul Wernick, who would eventually write the Deadpool films, are commissioned to write the script for Venom, which hand-waves the “didn’t Eddie and Venom get vaporized by one of Harry Osborn’s green orbs?” question. After contemplating dropping Grace as Eddie, the producers fall back on their original man. Grace is getting gooped.
2. Jim Carrey is Carnage.
2010: Venom debuts in summer 2010, starring Grace as Eddie Brock/Venom. Maguire makes a cameo appearance as Peter Parker (his last in the franchise) but is otherwise not part of the main story, which instead focuses on Eddie trying to coexist with the demonic alien that’s stuck to him. Anne Hathaway does indeed take on the role of Felicia Hardy, reuniting with Grace only months after they played a couple in Valentine’s Day. Felicia is similarly in the gray area between hero and villain taking on the persona of the Black Cat — possibly a love interest for Eddie, possibly a nemesis. The real villain of the film is the symbiote Carnage, played here by Jim Carrey, long rumored for role.
Skepticism of Venom is high, given the gnarly Spider-Man 3 reception. Everybody expects Grace to face-plant and for the movie to bomb, but it doesn’t! The critics aren’t quite onboard — though a few dig the smart-ass comedic tone and absurdity of the central plot — but the movie makes another boatload of money and ends up seeming okay in the midst of Iron Man 2 and the previous year’s X-Men Origins: Wolverine. Hathaway is a hit, as is the CGI work, which is more than enough goodwill to warrant a sequel.
3. Emma Stone is in, Andrew Garfield is out.
2013: Venom 2 premieres in 2013, and critics are beginning to come around to the franchise. The success of the first Venom movie turned Hathaway into a must-have franchise actor, and she controversially accepts the role of another darkly feline anti-heroine in The Dark Knight Rises with Christopher Nolan. Needing a new love interest, the producers look to the character of Gwen Stacy, the subject of some longing glances from Eddie in Spider-Man 3. Gwen was played by Bryce Dallas Howard in that film, but the role is recast here with Emma Stone. She and Grace deliver some fantastic romantic chemistry in the film, and rumors begin circulating that the pair are dating in real life.
As for the villain, Sony finally pulls the trigger on Lizard, giving Dylan Baker the biggest role of his career (even if he’s mucked up in CGI for much of it). Venom 2 makes even more money than the first one, and in the wake of The Avengers’ unprecedented success for Marvel, Sony quickly turns to spinning Venom into an even larger project.
4. Topher Grace goes to space.
2014–2015: While he’s never been the most beloved of superhero actors — certainly not on the level of the Chrises Evans and Hemsworth — Grace’s relationship with Emma Stone brings the public around. They seem cute together! He accompanies her on the Oscars red carpet when she’s nominated for Birdman and looks pretty dashing. They do the Us Weekly staged paparazzi-photo thing in a way that feels shrewd but not annoying. Topher Grace is becoming a Good Celebrity.
Meanwhile, his career is blossoming. He signs on to make a movie with Martin Scorsese where he plays a missionary priest in 17th-century Japan. He raises a bunch of eyebrows when he’s cast as Prior Walter in the Broadway transfer of the Angels in America revival (he’s nominated for a Tony Award, and while theater purists resent the carpetbagging, the reviews are mostly respectable). Most curiously, Grace’s hobby of reediting popular films like the Star Wars prequels, Boogie Nights, and The Hobbit becomes a popular part of his star persona. It’s weird but oddly endearing, fanboys decide. The Star Wars edits in particular attract such a groundswell of support that Grace is the subject of a grassroots fan campaign to be cast in the developing Star Wars sequels. And it works, with director J.J. Abrams announcing that Grace will play the character of Kylo Ren (who? sure!) in Star Wars: The Force Awakens.
5. The McConaissance hits superhero culture.
2016: After two successful Venom films, Avi Arad finally gets to deliver that Sinister Six movie that’s been in development forever. The league of supervillains has historically opposed Spider-Man, but since Venom is now the hot hand in this particular franchise, it’s Eddie Brock who finds himself staring down a sextet of bad guys. The film is written and directed by Drew Goddard and pits Venom against a rogue’s gallery that includes Matthew McConaughey (it’s the McConaissance!) as Vulture, Paul Giamatti as Rhino (as the fates clearly intended), Jamie Foxx as Electro (ditto), and Zachary Quinto. Felicia Hardy returns, but since Hathaway burned her bridges, it’s Felicity Jones who takes over the role. Rounding out the group is Aaron Taylor-Johnson as Kraven. The Sinister Six opens to criticisms eerily similar to the Spider-Man 3 complaints: too busy, and not enough time dedicated to the central relationship that we actually care about. You know, Eddie and Venom.
6. Tom Holland arrives.
2016–2018: Sony and Marvel finally untangle years’ worth of corporate rights issues, paving the way for Spider-Man to enter the MCU, which he does, in the form of Tom Holland. Peter Parker debuts in Captain America: Civil War and then with his own stand-alone film, Spider-Man: Homecoming, the latter of which includes a post-credits scene featuring Venom. The rumor mill is on fire, suggesting Grace’s Venom will be crossing over in Avengers: Infinity War and Endgame. Scenes are filmed, with Grace and Holland facing off (and later fighting Thanos together), but Kevin Feige ultimately cuts them, nixing Avi Arad’s favorite anti-hero from the biggest movies in history.
Venom does appear in Spider-Man: Far From Home in 2019, but the idea of an older Eddie Brock feeling professionally and personally jealous of a high-school version of Peter Parker throws the vibes way off. Plans for a Venom 3 stall. After all, Topher and Emma Stone broke up a few years ago.
7. And so does Tom Hardy.
2021: Inevitably, poor Topher’s inclusion in both the MCU and the Star Wars universes burns the geek world out and his grace, heh, period proves short-lived. There’s talk of rebooting Venom, but with the British actor Tom Hardy instead. He seems like a weird choice for the role, but whatever. Grace, meanwhile, is gearing up for an Oscar campaign in support of his lead role in Lin-Manuel Miranda’s Tick, Tick … Boom. Can he carry a tune? I guess we’re about to find out! Meanwhile, over on lowly TV, Andrew Garfield, best known for his roles in The Social Network and The Imaginarium of Dr. Parnassus, begins filming the second season of his ABC sitcom Home Economics, wondering why his career never took off quite the way he’d hoped.
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();
// ]]