Elsbeth has always warned viewers against the dangers of monomania. A passion for one’s hobbies, a strong focus on one’s career, being deeply invested in some crucial aspect of one’s identity — all fine. Laudable, even! Enthusiasm for the things we care about makes the world go ‘round. However, there are limits to how far such focus and devotion can and should go, as we see when Chef Veev’s monomania regarding perfection and being the boss gets the better of her. Yes, chef, we’ve come to the haute cuisine gone wrong episode, and what a feast it is! (The unbearable puns will continue until I can sense your annoyed, yet tickled, groans from afar.)
To a certain degree, I sympathize with Chef Veev (Pamela Adlon, festooned with thematically appropriate fake tattoos and having a marvelous time ruining her onscreen underlings’ peace of mind) — being a restaurateur means keeping horrible hours, being in a state of near-constant anxiety over razor-thin profit margins, and living or dying by Yelp reviews and social media virality. She’s clearly gifted as a chef and has both a clear vision for her restaurant and the ability to articulate it. And yet, she doesn’t have the degree of confidence in her staff that you’d expect from a chef running such a popular, top-tier place.
For Chef Veev, perfection is a requirement, and nothing can get in the way of that, especially not tonight when a five-star VIP is expected. Naturally, everything goes to hell at the front of the house, where the maitre d’ Sam (Jack Davenport!) is in an absolute state, as people seem to have somehow bought others’ reservations at auction. Worse still, this leads to the aforementioned VIP, a Mr. Montebello, leaving in a disgusted huff when his booth is full of loud young influencers busily documenting their dining experience. Somehow, even in the loud restaurant, Veev hears the pinging of notifications on the phone of her underling, Jordan (Aaron Gonner). Can he be the person selling legitimate reservations?
He can, and she catches him in the act by successfully bidding on a reservation herself. A massive argument ensues, full of colorful insults — she calls him a “roach-eating basement rat,” he hits back hard with “Your lamb shanks are chewy!” — and instead of just throwing him out of the restaurant, a switch flips in Veev’s mind, leading her to bludgeon Jordan with a meat cleaver while screaming yet more culinary insults (not his knife work!!!). Jordan may be down, but he’s not out, taunting Veev with a video of her assault, a misstep that turns fatal, as Veev chokes him to death (wearing safety gloves, for she is a professional). Once again, quick thinking could save the day for our perpetrator: she swiftly deletes the video from Jordan’s phone, then bludgeons herself, hurls the cleaver into the industrial dishwasher, and dumps a full box of avocados on the floor, staging the scene to make it look as though they were both beaten by persons unknown. Whew!
After staggering halfway up and then falling back down the stairs out of the basement, Chef Veev seems to pass out just as the timer for the half-sheet of roasting duck starts to beep. As she comes to, she’s surrounded by Elsbeth, Kaya, and this episode’s detective of the week, Detective Edwards (Micaela Diamond), who you may recall from last season as being very into newfangled technological crime-solving tools. She seems a bit more chill and willing to listen to Elsbeth and Kaya this time around.
Despite having been pushed down the stairs by multiple assailants unknown and sustaining an arm injury necessitating a sling, Chef Veev insists on staying at the restaurant to work. It’s what Jordan would want, and he died a hero, trying to protect her. She won’t disrespect him or risk the month’s finances by canceling an evening of service, even at the behest of her sincerely worried and upset staff, saying, “I’m fine! I’ve worked with concussions before!” That’s not the badge of honor she thinks it is, and I recommend that she make an appointment with a neurologist at once.
Naturally, Veev’s apparent bravery, along with some strange stains on her shins and staff reports of her historically fiery temper (usually kept in check since she got anger management therapy a few years back), all ring some concerning bells for Elsbeth and Kaya, so while Edwards does her thing, Elsbeth and Kaya do theirs. As usual, being attentive to the style and substance of what witnesses say yields further intriguing answers, leading us to the local avocado cartel. Friends, I howled. We’ve already had drug cartels dosing unsuspecting people with an evil plant, and now, an avocado cartel! Who were trying to twist Chef Veev’s arm into buying from them! They’re such a big deal that the FBI has a fruit crimes investigative unit staking out the big produce market Veev likes to go to. Their helpful agent-in-charge eliminates — and I am not joking — a boss named Avocado Don and his henchmen from the list of suspects, as they were plying their dastardly trade-up in Harlem the previous night.
The remainder of the episode untangles the remaining threads of suspicion around Chef Veev; giving Elsbeth and Kaya more opportunities to engage in healthy, if not entirely resolved, conflict; a continuation of Captain Wagner’s side quest to improve morale and his own standing at the precinct in the wake of Lt. Connor’s negative findings so far in his auditing process, and most importantly, an opportunity to bring back former supermodel Nadine (Laura Benanti) to help get Elsbeth in the door at Chef Veev’s restaurant.
This episode furnishes just enough Nadine nonsense to up the fun factor and highlights once again what rarefied milieux Elsbeth and Kaya navigate each week. Benanti is having such fun with lines like “Another model once tripped me backstage at Versace — I’m not naming names but ask me in the car, and I’ll tell you” and, when faced with the evening’s bill for $911.43, “I would offer to pay but [holds up a minuscule tote] — my wallet wouldn’t fit!” Her fully loopy energy, including her Madonna, circa 2001, slightly British accent, is a tonic!
Lt. Connor continues to elicit so much anxiety for Wagner, Elsbeth, and Kaya. I get the impression from the earnestly concerned face he’s always making that he just wants everything to be as good as it can be, and for him, that requires flawless adherence to all ethics rules. Elsbeth’s flub in allowing him to know that Kaya is living with her ratchets up Kaya’s pre-existing anxiety about her upcoming exams and hoped-for future promotion to detective. Elsbeth clattering around in the kitchen as she tries her hand at Chef Veev’s iconic duck confit and sausage cassoulet is not helping, either. Once again, they’re talking through their conflicts in good faith. You love to see it!
Meanwhile, Wagner continues to pursue improving his standing with his officers and detectives and hits on quite a success with regular poker nights, which is great because he’s fully in his head about Connor’s continuing audit. I always enjoy some humor from Wendell Pierce, and his delivery of “he probably has a spreadsheet going, listing all my flaws alphabetically” is so precise and reveals Wagner’s personality more. Poker nights also yield crucial opportunities for Edwards to discuss what she’s learned about the case — the Inside Table app where Jordan was selling reservations, some context about Mr. Montebello, who Veev was so distressed about — and arriving at a motive for Chef Veev. If she’s lost the opportunity to be Montebello’s partner, opening restaurants near all of his popular Pomm Hotels worldwide, she might well lash out violently, after all.
Edwards’ self-assigned “deep dive into Jordan’s InsideTable buyers” and Jordan’s girlfriend both provide useful context, too. Apparently, he was saving up to launch a food truck serving artisanal baloney sandwiches, and was able to maintain his reservation-selling scam right under Sam’s nose because he kept it simple, was careful not to double-book, and because Sam is often under the influence. What surely would have gotten him fired the moment Chef Veev discovered it was the double-booking that led to so many legit customers being furious and, in the case of hotelier Montebello, walking out. Jordan wanted to go out in a blaze of glory, which in this case was a payday twice as big as usual.
Armed with an even stronger motive and an improved understanding of how InsideTable works, our team makes the dream work by adding the third and final ingredient needed to unlock the full, complex palate of Chef Veev’s guilt: duck.
Remember way back when Veev asked Malcolm to pop a half-tray of duck into one of the basement ovens to roast? And when the alarm to turn it before roasting another 90 minutes rang just as she appeared to be blacking out on the basement floor because she always wants to be the one to handle the duck? Elsbeth has a flash of insight when her own attempts to make duck confit culminate in nearly incinerating the phone she accidentally put in the roasting tray. Chef Veev’s bleach-stained work pants are the result of dragging herself across the floor to turn the duck and reset the timer! As a bonus, a forensics report reveals that her fingerprints were on the screen of Jordan’s phone, implicating her in the erasure of his video of her assaulting him with the cleaver.
In This Week’s Tote Bag
• I really enjoyed Elsbeth’s unsuccessfully deployed fancy pseudonym, Emma Von Pettigrew (of the RI Pettigrews, naturally). More silly names, please!
• The plot line about Elsbeth’s long-ago divorce client re-appears, once again deploying a black, tinted-windows SUV, but this time containing TruRose, the soon-to-be-ex-wife of the very unsavory-sounding Mark Van Ness. Elsbeth very kindly and firmly turns down her request for obviously privileged information. I assume this will continue to come home to roost throughout the season.
• Shout out to the fight coordinator for this episode! Chef Veev and Jordan’s basement showdown is (to the best of my recollection) the longest and most complex physical altercation we’ve seen on Elsbeth so far.
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();
// ]]