New elevator (pffft, elevator) pitch: Russian Doll is Groundhog Day meets Lost. And Alan (Charlie Barnett) is a Tailie! Trapped in the same cruel time loop as Nadia, he’s just been out here trying to survive, exactly as she’s been, and this episode is when we get to find out what he’s been up to. (For my fellow Lost nerds, the corresponding episode I’m referring to is, of course, season two’s “The Other 48 Days.”)
What Alan’s been up to is very different compared to what Nadia’s been up to. As she might say, these two are such polar opposites they’re like “oil and vinegar.” She gravitates towards chaos with her tossed-aside relationships and panoply of mind-altering substances. He embraces order. What he wants to impose order on most is his doomed, nine-year romance with Beatrice. (Hey, it’s Dascha Polanco! An Orange Is the New Black reunion! More on that in a sec.)
Alan’s fastidious itinerary is as precise and intense as the classical music it’s scored to. Every time he “resets” (as he calls it) to his own bathroom, he begins anew by counting aloud which reset he’s on. (Side question: Why the bathroom, folks? Water = rebirth? Cleansing of original sin? Or just because a bathroom is usually a private place?) The first reset we see is the 10th one he’s been through. He puts his toothbrush down. (He brushes his teeth every time? What a detail!) He swats a fly on the wall and kills it. He unpacks the suitcase he’d previously packed for his planned getaway with Beatrice, the one where he was planning to propose, the getaway she’s about to thwart by dumping him instead. He feeds his lone betta fish. He kindly holds the door for his elderly neighbor. He recites his affirmations: “I am beautiful. I am loved and deserve love. I am in control. I am beautiful. I am loved and deserve love. I am in control.”
“Routine is an incredible thing, Beatrice,” he tells her after arriving at her apartment to be dumped, like he’s keeping an appointment. “We become what we repeatedly do.” He is “in control” of their encounter, acting it out as if it’s a play, even narrating as it unfolds. “It’s almost as if it’s occurring to you in this moment gonna be harder than you thought,” he tells Bea. He’s so keen on mastering this scene that he steps all over Bea’s lines:
Bea: “You look— ” Alan: “Thanks.” Bea: “You seem a little— ” Alan: “You always say that.”
Granted, none of this appears to make Alan happy. It does seem to make him… somewhat content? Like he’s out for revenge and the pursuit of that revenge offers some degree of satisfaction? Is Alan so obsessed with being in control because he used to be out of control? His mother seems genuinely worried about him, like psych-ward-patient worried, when he pops in to visit her at work (at the Salvation Army building). She’s concerned he might be “skipping work again.” I cannot picture Alan as the type of guy who’d gain a reputation for skipping work. When he (falsely) tells his mom that he popped the question to Beatrice, what does it say about him that SHE NEEDS TO ASK WHETHER BEATRICE SAID YES?? (Thanks for nothing, Mom.) What does it say about him that he visited the jewelry store 20 times to choose Beatrice’s engagement ring, yet ended up selecting the most basic ring in the store? I like him, but why doesn’t anyone else seem to? Like his neighbor, who admits she wouldn’t talk to him if he didn’t pay her to fish-sit? If routine makes you become what you repeatedly do, what is he trying to become and what was he like before?
“This is the problem. You’re always trying to fix every little thing,” Bea says after he wipes up his spilled drink. “I can fix things. I just did,” he insists, almost as if he’s surprised to realize it. Beatrice also complains that Alan would lose his shit if she didn’t “say anything that wasn’t completely encouraging,” which… sounds like John, Nadia’s ex.
Then there’s that mini-montage where he binges video games (obvious Nadia connection) and cake. “Breakup or birthday?” the delivery person asks him about all the cake slices. “Birthday,” Alan says. (He doesn’t know it, but it is Nadia’s birthday.) This reminds me of my own depressive episodes, the opposite of self-care: lying on the couch, staring into the middle distance, submitting to one’s unhealthiest impulses.
Solely as a character study of Alan, this episode is outstanding, and also, Charlie Barnett is freakingmagnificent. I don’t think I’ve ever seen him before; I’ve never watched Chicago Fire (where he was a main cast member for three seasons) and I stopped watching OITNB before his one-episode guest slot (on season five’s “The Reverse Midas Touch”). I would now watch him read the phone book and I will definitely watch him when Netflix debuts its Tales of the City adaptation later this year. Also, I like how incestuous the casting on Russian Doll is becoming — by my count, this episode has three OITNB veterans, including Natasha Lyonne, of course — because it mirrors the show’s incestuous narrative overlaps. I’m going to lay those out here in chronological order, because messing with its own narrative chronology is another way this show is like Lost, and yes, I did once have a Beautiful Mind-style bulletin board with strings running between thumb tacks to keep everything on Lost straight, thank you very much:
• After the first time we see Alan get dumped, he drowns his sorrows at 7B. • He meets Fahran for coffee. Fahran is his old college buddy! • Wait, that means Alan is Fahran’s drunk friend from the pilot!! • Alan looks up the guy Beatrice cheated on him with and it’s Nadia’s hookup from the pilot!! • Nadia and Alan literally crossed paths in Tompkins Square park at least once. • Alan dies at the same spot along the East River where Nadia did in episode 1.
And speaking of overlap, let’s also pause here to discuss Russian Doll’s use of music. It’s something I probably should’ve brought up by now, because Harry Nilsson’s “Gotta Get Up” as Nadia’s “reset” theme is goddamn perfect. It’s jangly and a bit disheveled-sounding and funny, just like she is. When Alan is introduced, his theme is classical — music that’s, as I mentioned above, orderly. The episode’s score then starts overlapping their themes as they begin to affect each other’s lives. The first time Alan resets after meeting Nadia, he swats the fly on his bathroom wall and misses; in response, “Gotta Get Up” begins to play. After Nadia tells him outside his apartment building, “We’re in this together,” the camera lingers on her face as she Nancy Pelosis her sunglasses — and classical music kicks in.
(One more aside I’ll put here: How much did you love that hilarious scene in the jewelry store? Nadia’s lie about having name blindness is so fantastically harebrained it may as well have been lifted from Three’s Company, but it’s amazing how far she goes to sell it. And she delivers the line that has made me laugh more than any on the show so far: “I applaud your instincts. I see why they trust you with all these jewels.”)
Back to Alan. “I liked it. I had control,” Alan tells Nadia about his time-loop life before they met. “I knew what was coming. And then you showed up and everything has gone down a weird path… I learned something I really didn’t want to know. My girlfriend of nine years has been cheating on me.” Alan learned this because the shock of encountering Nadia in the elevator stunned him into silence at his next Beatrice-breakup re-enactment. It’s because of that awkward silence that Bea winds up blurting out that she’s been sleeping with Mike — a.k.a. The Gingerbread Man, LOLZ.
Alan changes because of Nadia. He throws the engagement ring into the East River. After his freak electrocution a moment later, the ring is gone on his next reset. It’s not in that box he’d been fidgeting with since the elevator. Based on the proclivities of Nadia’s time loop, the ring should’ve returned, just like her long hair returned after her haircut and her injured finger went back to being un-injured. Alan’s fish is gone, too. WHERE DID HIS FISH GO? Earlier in the episode, he’d said about betta fish, “If there are two, one kills the other.” Are he and Nadia the fish? Are he and Mike the fish? Did his neighbor kill the fish as she feared she might?
And one final line of questioning for you all: What’s Alan’s timeline like compared to Nadia’s? After his final reset of this episode, when he declared he was on reset #12, it suddenly hit me: Did Alan and Nadia have the same reset #1? Was the night Beatrice originally broke up with him also the night Nadia saw him at the bodega? Getting shitfaced certainly seems like something Alan would do after getting dumped the first time. And then the next time Nadia went to the bodega, Fahran said nothing had happened with his friend the night before. So that would mean Alan got his act together after the first night and started acting out his little Beatrice-breakup play beginning with the second night of their loop?
Someone check my math on this and show your work in the comments, please!
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()}});
}, {"3":3,"6":6,"17":17,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(17),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(3),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 i=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||i.classList.remove("open")})}function gtmSendReport(e,n,t){let i={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(i.eventLabel=n.href),gtm.reportNow(i)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const i=t.split("?"),o=new URLSearchParams(i[1]);for(let e of n.entries())o.set(e[0],e[1]);t=`${i[0]}?${o.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()||auth.isMobileAppRequest())&&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;
}, {"3":3,"4":4,"17":17,"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();
// ]]