“Oh my God. I think they forgot to take taxes out. This does not make sense,” Hannah, who three seasons ago we witnessed stealing money from a hotel housekeeper, says when she gets her first paycheck from GQ. “This is how much money I make a week? This is a lot more money than my rent!”
Hannah’s guileless reaction is, in keeping with last week’s scene of all the girls cleaning up the kitchen at Marnie’s borrowed Long Island house, a reminder that while she may be plenty self-involved, Hannah’s not nearly as monstrously entitled as she’s been made out to be. A truly spoiled person would be disappointed by the check. Hannah is genuinely shocked and delighted by it. And her first taste of actual, earned economic security is the catalyst for one of the most purely joyful sequences since Girls’ first season, when Hannah and Marnie grooved to Robyn’s “Dancing On My Own,” acting as ballast for each other in a sea full of herpes and overattentive college boyfriends and New York City rents.
This time, the song is Lily Allen’s “L8 CMMR,” a bouncy love song rather than a celebration of single-girl fortitude. And it’s a sweet fastball of a track, absolutely perfect for the moment when Hannah walks past a gorgeous dress in a shop window, backtracks to look at it, and emerges several minutes later wearing perhaps the most flattering ensemble she’s ever donned on the show. After she’s treated herself, she sets off to arrange a celebration for Adam that includes inviting her friends to share in her windfall of an evening at the Gramercy Park Hotel, even after their terrible fight of the episode before.
It’s impossible to argue, and I’m not going to try, that Hannah is any way underprivileged or deprived. But there’s space in between poverty and abundance that can still crab your character, making you anxious, and irritable, and self-absorbed. It’s not the end of the world to just barely make rent and fill your fridge, and for your most significant treats with the little money you have left over to be ice cream cones and bus tickets to the North Fork. But it’s not pleasant to count your budget down to the penny and to calculate it by the day until your next check comes in. When you’re financially secure, you have certain luxuries to be a different kind of person: You can free up mental energy from budgeting and saving to listen to your friends, you can pick up the tab, you can encourage your partner rather than nag them.
Girls hasn’t always made this connection explicit. Hannah’s intense anxieties about her book often come across as extreme self-interest, whether she’s making a fool of herself at her editor’s funeral or interrupting her father’s explanation of his surgery to freak out about her contract. But of course it makes sense that her concern isn’t pure vainglory: It’s about making enough money to lever herself out of her job at Grumpy’s. Similarly, when Ray mocks Hannah for going to work in advertorial at GQ, we can see her irritation as she asks him “Do you think I’m fucking excited, Ray? Do you think that I think that this is the best use of my literary voice and myriad talents?” But as I said two weeks ago, it’s significant that Hannah goes to the job anyway, that she sticks with it, even when the reality of her circumstances leaves her in tears of disappointment at her desk.
And this week, we see even more of the person Hannah is when she has a job, and an income, and steady work to do. She doggedly tracks down Patti LuPone after the actress ditches her interview. Even though she’s conducting an utterly phony interview that’s designed to sell an osteoporosis drug, we see Hannah act like a real journalist, talking LuPone into the interview, into giving Hannah more time, and even into kind of enjoying the farce they’re conducting together.
At the hotel, the change in their respective circumstances, which last week flared like an infected cut, gives Hannah a little breathing room to be kind to Marnie. Yes, she’s frustrated by her former best friend, and yes, Hannah’s incredulous when Marnie hops into Desi’s rendition of “Roll On, John.” But when the two of them are in that cavernous bathroom together, Hannah gently asks Marnie what’s wrong, and when Marnie gives her a little girl’s sad “I can’t tell,” keeping the secret of the man who just dumped her, Hannah just holds her while she cries.
And it’s lovely to see Hannah and Adam have a kind of conversation that was so difficult for them two seasons ago. Hannah’s rarely been clearer than when she tells Adam: “I don’t want you to get so happy doing the play that you don’t like our life together anymore,” even as she’s clear and confident that she’s thrilled for him, and she wants him to do it. And her declaration that “You’re the only person I’ve ever loved. And you’re the only person I want to love,” is pure and open-hearted: It’s almost a proposal, and Adam’s “Well, ditto,” is almost an acceptance.
If Hannah’s arc had been the whole of the episode, it still would have been the best of the season, and one of the best of the series. But her small, precious triumphs are even more powerful in contrast to Jessa’s tumble off the wagon.
Girls could have been snide about Jessa’s derailed recovery, especially considering how flippantly she’s approached it, and Shoshanna’s filleting of the language of rehab during their beach trip last week. Instead, there’s something piercingly sad about the sight of Jessa not just falling apart, but falling apart because a pathetic predator she met in rehab showed up at her job, refused to go away, and declared, “We are not the kind of people who sit around in a store like this selling $200 bathing suits to toddlers.”
Maybe they’re not. Earlier in the episode, we see just how bored Jessa is at the job she went out and got to prove to herself she could do it: She’s lynching a dummy, making gimp bracelets, begging the UPS delivery guy to stay and tell her about his weekend. Like Hannah, she’s sticking to a job that isn’t everything she dreamed of. But unlike Hannah, Jessa isn’t being intellectually validated by her work, or even paid at a level that feels surprisingly gratifying. Her reward is the knowledge that she’s reliable enough to keep showing up, something that’s an accomplishment for Jessa, but not one that feels as transcendent as cocaine or transgression in general.
It was one thing to see Jessa blow up her spectacularly ill-advised marriage last season. But it feels awful to see her light a fuse on something more sensible and sustainable, a job Jessa was clearly good at even if she didn’t love it. Watching her rifle through the store owner’s secret stash of cash was pathetic, but less in a way that made me feel revulsion than profound concern. Jessa’s never been more clearly an addict, and Girls has never been more clear about what that means. “Who keeps their money in a shoebox?” she asks. “We will!” her stalker and enabler declares. If that’s meant to be a vision of the good life, proof that there’s more integrity in embracing addiction and throwing off all the norms that make squares’ lives pretty great, it’s an awfully meager one.
Ray, when he’s dumping Marnie, offers up a contrasting explanation of what he’s dreaming of right now. “I want a girlfriend, Marnie, like a legitimate girlfriend,” he says. “I want to have a relationship that’s deep, and sincere, and challenging, and scary. I want it to be real. I want to meet a girl that I have a lot in common with, and ask her out, and learn about her family at a park bench, in the middle of the night. And if things go well, maybe invite her back to my place and put on some Roxy Music.” Maybe that’s not as wild as robbing your employer in the middle of the night to buy cocaine. But as a long-term plan, it’s got a lot more potential for satisfaction.
Dealbreaker Index
The Return of Hyper, Shallow Shoshanna: Give us back our anxiety-ridden, tipsy truth-teller, I beg of you! Or at least spin her off into Shosh In The City, in which the city is Philadelphia and she’s at Wharton.
Jessa’s Taste in Men: Does anyone else think that maybe Jessa needs love and sex addiction therapy more than treatment for substance abuse?
Marnie’s Ignorance of Paella: Also, the fact that she seems to have missed that Desi has a wife, or a girlfriend, or someone named Clementine who’s cooking it for him? Marn, you can’t claim to be a Manhattan sophisticate and not know what paella is!
Hannah’s Rendition of “Don’t Cry for Me, Argentina”: This week’s episode is pretty firmly a win for Team Hannah. But if she was going to warble at that poor waitress and then leave without ordering anything to go hunt down Patti LuPone, Hannah should have at least used her newfound power to expense things and left a nice tip.
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();
// ]]