Last week, Konstantin told Villanelle that the safeword for her Aaron Peele operation in Italy was “gentleman.” That was Eve’s safeword for a long time too, the panic button she pushed again and again to keep her safe in her boring, straight married life with Niko, insulated from all her fears and transgressive impulses.
When Villanelle learns that Raymond — who appeared briefly as her new handler for the Twelve and smashed her head into the car window — is one of Peele’s prospective buyers, she pushes the panic button too. Not because she genuinely feels like she’s in danger, but because she knows that Eve will come running like she always does, hurtling towards chaos with the secret hope that it will do the one she’s been too afraid to do herself: destroy her old life beyond all fixing and recognition. She’s even willing to leave Hugo bleeding to death on the floor from a gunshot wound in order to do it.
After sneaking past Peele’s security by dressing as a maid — the same “I’m just a humble non-white, middle-aged service worker” tactic practiced by the Ghost — Eve arrives at their sumptuous repast to find Villanelle calmly enjoying her breakfast. “You said you were in trouble,” shouts Eve, and Villanelle shrugs. This is what she wanted and now she has it; that’s the only form of honesty she knows, the only truth she tells every time.
Villanelle tells Peele that she’s also discovered his digital library of videos where he kills female guests (apparently, his “no touch” policy has a murder waiver) and for a moment it seems like they are mutually thrilled by each other’s sociopathy. Peele offers her a job — the starring role of “killer” in his snuff films — and promises it will be a non-stop rollercoaster ride of novelty and excitement. All she has to do to get “everything” she’s ever wanted is to begin with one simple thing: killing Eve.
“You’ll get bored with her,” says Peele. “You’ll never get bored here. I’ll make sure of it. Neither of us will ever be bored again.” For a moment, she grinds it around in the teeth of her mind, like she can’t decide whether to swallow it or spit it out. Then she walks behind Peele, slits his throat, and holds him up to a mirror so he can watch himself bleed out, a slight smile playing on his lips as he dies. He always did like to watch.
Starring in someone else’s movie or playing someone else’s game has never been Villanelle’s version of fun, and hardly “everything” she wants. There is no “everything,” for her, no win state that results in perpetual satisfaction — just a constant, mercurial desire to keep doing the opposite of what everyone expects. The problem with being a human version of Game of Thrones, however, is that eventually insisting on the unpredictable becomes predictable, and as easy to anticipate as a cliché.
After Peele dies — the exact opposite of what Carolyn instructed, remember — Eve insists on going back to her room to get the recordings, because “this can’t be for nothing.” When she returns to the hotel, everything has been cleaned: the bed made, the computers taken, and neither Hugo nor the copious amount of blood he lost anywhere in sight. Carolyn soon knocks on the door and tells Eve that their team swept the hotel, and that she’s actually quite pleased about Peele’s murder: it was her reverse psychology plan all along.
It was a smart plan; she knew she couldn’t stop Eve’s obsessive spiral any more than she could change Villanelle’s murderous, contrary nature. And why try? Why sail into the wind when you can sail with it, and let your self-destructive captains carry themselves exactly where you want them to go? Now MI6 can blame his death on an assassin of The Twelve and wash their hands of it, and let the serial killer who murdered one of their agents pay the price. Eve is simply aghast and betrayed, on Villanelle’s behalf and her own, and refuses to go back to MI6. Carolyn shrugs; this is what she wanted and now she has it.
Outside, Villanelle comes face to face with Konstantin for a very similar conversation about how he tricked her into being herself, and offers her the keys to an escape car on one condition: that she leave Eve behind. For the second time, Villanelle refuses to abandon her, insisting that “we are the same.” When Eve fails to emerge from the hotel, Villanelle tucks a gun in the waist of her killer red pantsuit and heads in to find her. And who’s waiting between the top of the stairs and Eve’s room but Raymond, wielding a red-tipped axe and doing his best Jack Torrance impression.
Raymond drops the axe so they can grapple hand to hand, and it’s only when he gets the upper hand and starts choking her to death against an ornamental metal screen that he notices Eve behind him, holding the weapon. “Do it,” whispers Villanelle. “She doesn’t have it in her,” laughs Raymond.
He’s wrong, of course, as Eve drives the axe deep into his back for the one reason she’s always done the very stupidest things: to save Villanelle. The wound slows him down but doesn’t kill him, and Villanelle whispers again: “Don’t think, Eve. He will come after us.” Eve pulls out the axe and strikes him in the head, until whatever he was is gone.
Villanelle, naturally, is thrilled by this development; this is what she wanted, and now she has it. She takes care of Eve like a child, peeling off her maid’s uniform and guiding her out of the hotel as if into a new and foreign country. “It’s okay if you feel weird,” she comforts. “You just killed someone for the first time. With goons waiting at the front door, they escape out the back, first into alleys and then into an old building, where they finally emerge into the light in an ancient ruin of Ionic columns and broken stone.
“What do you want for dinner?” Villanelle asks, and spins a little story about their happy ending: whisking away to Alaska, living in a cabin, being “normal” or whatever that word means in her head. “It’s going to be amazing,” she promises. It’s all light and water and singing birds until Villanelle pulls the gun out of her pantsuit and Eve realizes that she never had to kill to Raymond — that it was just another manipulation in a giant round robin of manipulations. “You wanted me to do it,” says Eve accusingly.
Her outrage rings a little false, just as it did with Carolyn, or as Villanelle’s did with Konstantin. How angry can you be at people when they are exactly who they are and who they promised to be? Eve’s been walking up to this line for a long time very willingly, against the advice and warnings of nearly everyone around her. What did Villanelle say at that AA meeting? “I get what I want; I don’t want it.” Maybe Villanelle was right after all, and Eve is more like her than she thought.
Whether she admits that this was her final destination or not, she’s finally arrived — and furious at the idea that she’s been seduced or coerced across the threshold, even though she has spent almost the entire series in the thrall of that precise feeling. That’s the thing about seduction, and the fine, dangerous line it can toe with coercion: When does attracting someone turn into manipulating them? And when it works, when the desires you have and the desires someone has rewarded start twining and blending together, can you always tell whose idea was what, in the end? Whether a feeling was real, or where it came from, or what it tells us about ourselves?
“This is what you wanted,” insists Villanelle, who is both right and wrong. Eve’s impulse was the same one practiced by terrible managers everywhere: never knowing what you want, only what you don’t. Her fascination with Villanelle is based not only in the feeling that she’s looking into a dark mirror, but also in an apophatic theology of love. When we don’t want this so much as we want not this, the fastest car out of wherever we are, driven by anyone devil-may-care enough to push the pedal to the floor.
So she pushes Villanelle away, says she’s going home, that she doesn’t love her, that she isn’t hers. You’d think Villanelle would have some sympathy for this response, given that she just responded to the same sort of manipulation by an intimate friend by threatening to kill him and his entire family. But double standards are in play, because what Villanelle wanted — what she really wanted — was not an equal but a subordinate, a serial killing sidekick, someone to to trail around in her wake, singing the harmony to her murder ballads.
And so Villanelle snaps, because she’s always been the sort to break her toys when she can’t play with them the way she wants, raises her gun to Eve’s back and shoots. Eve has finally arrived, only to find that — like Villanelle — what she really wants is not a secondary role in someone else’s story, but a story of her own, one that she might finally feel brave enough to write. “You want me to be a mess, you want me to be scared,” snarls Eve, just before she walks away. “But I’m like you now. I’m not afraid of anything.” She might be bleeding out, but Eve’s never been more victorious or honest or interesting — and Villanelle has never had less to do with it.
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(4),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(135),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,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),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(406),_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,"406":406,"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","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.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();
// ]]