Skip to Main Content

One young woman faces down an all-powerful corporation in this all-too-near future science fiction debut that reads like a refreshing take on Ready Player One, with a heavy dose of Black Mirror.

Ready Player One meets Cyberpunk 2077 in this eerily familiar future.

“Twenty minutes to power curfew, and my kill counter’s stalled at eight hundred eighty-seven while I’ve been standing here like an idiot. My health bar is flashing ominously, but I’m down to four heal patches, and I have to be smart.”

New Liberty City, 2134.

Two corporations have replaced the US, splitting the country’s remaining forty-five states (five have been submerged under the ocean) between them: Stellaxis Innovations and Greenleaf. There are nine supercities within the continental US, and New Liberty City is the only amalgamated city split between the two megacorps, and thus at a perpetual state of civil war as the feeds broadcast the atrocities committed by each side.

Here, Mallory streams Stellaxis’s wargame SecOps on BestLife, spending more time jacked in than in the world just to eke out a hardscrabble living from tips. When a chance encounter with one of the game’s rare super-soldiers leads to a side job for Mal—looking to link an actual missing girl to one of the SecOps characters. Mal’s sudden burst in online fame rivals her deepening fear of what she is uncovering about BestLife’s developer, and puts her in the kind of danger she’s only experienced through her avatar.

Author Kornher-Stace’s adult science fiction debut—Firebreak— is loaded with ambitious challenges and a city to save.

Chapter 0001 0001
THE FIRST TIME IN WEEKS I SEE a SecOps NPC up close, I’m coming up on my daily thousand, my mind is long past numb from the repetition, and between that and the dehydration and the lack of sleep, I’m pretty sure I’m starting to hallucinate. Immediately I start second-guessing the figure in the distance, because what else can I do? Try to sprint over to it across a sea of mobs and wipe my thousand when I inevitably get pasted? That’s six hours of work, and I’m getting really thirsty. Besides, power curfew is approaching faster than my kill counter is climbing, and if it’s been weeks since a sighting, it’s been a month since I’ve actually made my thousand, and if there’s one thing I’m shit at letting go of, I’m staring down the barrel of it now.

The thing in the distance is another player, I tell myself, or some random unimportant NPC. Something in the scenery. Tired eyes playing tricks on me. There are upwards of fifty million people in-game at any given time. Be reasonable, Mal. Since when has getting your hopes up gotten you anywhere.

Except that this figure is glowing. Glowing in a very distinct way. A way that I usually see in other people’s streams, or much more distantly than this. The beacon rises off it, a column of light stabbing the sky, close enough that my pointer finger doesn’t eclipse it when held at arm’s length. It can’t be more than a quarter mile away.

From here I can’t see what’s at the base of that column of light, but I don’t need to. Only one kind of thing in-game throws beacons like that.

But if it’s what I think it is, there’d be a crowd swarming it. A couple hundred players easy. Trying to talk to it. Catching their glimpses. Streaming their footage. But there’s nobody here except mobs and me. And the figure in the distance and the light spiking up from it, and both of those things moving off, one slow, sure step at a time.

“Hey,” I call out, but whoever it is keeps walking, away and steadily, not so much as breaking stride. There’s a field of gunners and mechs and an entire three-ring shitshow between me and it. One by one these mobs would be no effort for me to kill, but all at once it’s another story. Which is, of course, the point of the thousand: it takes time. An ungodly lot of time.

Speaking of. Twenty minutes to power curfew, and my kill counter’s stalled at eight hundred eighty-seven while I’ve been standing here like an idiot. My health bar is flashing ominously, but I’m down to four heal patches, and I have to be smart. I allow myself exactly one second to stand and squint after the retreating figure, but either the graphics resolution or my eyes just aren’t that good. What’s floating above its head looks shorter than a regulation username. It’s a number. But which? There’s only one that’s going to make me cut bait on my thousand and brawl my way over there, no matter what stands in my way. One of twelve. The odds, again, are slim.

I just barely resist the urge to rub my eyes and risk accidentally dislodging a lens. Instead I slap a heal patch on an empty arm slot, reload, and battle my way up the landing strip, vaguely keeping note as the daily ticker climbs—eight hundred eighty-eight, eight hundred eighty-nine, eight hundred ninety—heading toward whoever it is I’ve seen, now receding in the distance.

I’m taking on bullets like a leaky boat takes on water, though, and my health is dropping fast. There might be heals on some of these corpses, but no time to loot them and see. Every second is a scramble. I need to duck behind something, just for a moment, to fix myself up. There’s nothing to duck behind. There’s nothing, period. The place is dead. Just the tarmac, and the purple sky, and what I fucking well hope is the remainder of my thousand, an untouched spawn from who knows how long ago.

I’ve never been out this way before, don’t know the lay of the land, and I’ve been low on supplies for days because I haven’t finished out a single thousand since I don’t even know when, and I’m not going to get the time to try again—really try, out here on my own, no stream, no viewers, no Jessa dragging me off on side quests and wild-goose chases and fuck knows what to amuse the audience—until late next week at best. It wouldn’t be the first time I lost a job because of chasing a thousand on someone else’s clock. Free time’s like free water, that rare.

It’s getting dark, and worse, my timer’s blinking: eighteen minutes to power curfew. If I don’t make it back to a save point before those eighteen minutes are up—if I get disconnected here, in this mess, surrounded as I am—not only is today a wash, but tomorrow’s not looking so great either. An uninterrupted loss streak like the one I’m looking at is a slippery slope straight to shutout city. No heals, no ammo, no credits to pay for more. And that’s not a possibility I’m exactly thrilled to entertain.

But for now I’ve got to stay alive just long enough to make my thousand, set myself up for climbing the boards tomorrow, and get the hell offline before the power cuts and strands me here.

I call up my last ten-second cloak, load another fresh clip, slap on another heal patch, hesitate, then chase it with a third, nearly the last in my bag. It’s getting dire. If you stood in my inventory right now and shouted, it would echo.

Even through the cloak I’m pulling aggro from all sides, and there are only three seconds left on the stupid thing anyway. Then the three seconds are up and the mobs pile onto me again and I have to blast my way free.

Single headshots when I’m lucky, multiple body shots when I’m not. Their health is dropping way too slow. Mine is having the opposite problem. I switch the blaster to auto and start strafing. It chews through my next-to-last clip, but at least they’re going down a little faster. Nine hundred thirty-two, nine hundred thirty-three, nine hundred thirty-four. I’m running on autopilot. If I wasn’t almost out of heals and ammo, I could do this in my sleep.

That thousand is my only ticket onto the boards, which is my only shot at something better than some middle-distance sighting, so I grit my teeth and keep grinding.

I blink at an empty corner of my visual field and pull up a chat window. Not overly concerned if I strike the proper half-joking-but-only-half tone when I project the message to Jessa: going to kill you when i get out of here

The reply pops up almost instantly: going that well, huh?

you said this place was safe. easy thousand, you said

i said it wasn’t a pvp zone. forgive me if i assumed you could aim

I resolve to let that slide. i thought i saw one of them out here

I’m not sure why I tell her, and I immediately regret that I have. Apparently six hours of mind-numbing grind can induce even my thought-to-text interface to make small talk. Any case, the beacon was way too far off to investigate in the next—I check the clock—eleven minutes before cutoff. Power curfew waits for no one, no matter what they saw or didn’t see.

This time the reply is instantaneous. wait, what? which one? where?

you know where i am, you sent me out here

I send over my coords. Back in real life my hand, curled around the invisible blaster, is starting to cramp. seriously though it was probably nothing By which I mean, of course, there’s no time, but Jessa wouldn’t buy that if I paid her.

it isn’t nothing, nycorix, she says, and I roll my eyes a little at her chronic insistence on using my in-game handle. you’re telling me you of all people don’t want to go over there and see who it is?

Like I haven’t thought of that. Like I’m not thinking it every second of every day I’m out here. Every time I see a beacon in the distance, its player crowd dense enough to spot a mile off, no chance of getting close and no real point in so doing, not really. Intellectually I know this. And yet. There’s no intellectually about why I’m still squinting after that retreating figure, trying to make out the number above its head.

I’m starting to kick myself pretty hard for bringing it up in the first place. Jessa’s great and I love her, but there’s a reason I came out here alone. it’s someone else, I tell her, willing the just drop it to come through in text.

A pause this time, which I realize is probably Jessa frantically checking the boards. Four years of being her roommate and teammate have endowed me with a pretty well-developed sense of what’s coming. i’m staying here and finishing this out, I say preemptively. tomorrow’s my only chance at the boards until my schedule calms down next week. i’m not wiping this thousand, jessa, i can’t

nobody asked you to, comes the reply, which I immediately flag as bullshit. ok, so i’m looking at the boards right now and none of them are out that way. not remotely that way This pause is very likely Jessa weighing her options. Sighing. Crinkling up the corners of her eyes the way she does when her internal monologue is steering her toward a bad decision. Or in this case, steering her toward steering me toward one. Even odds, most days.

seriously, I repeat, just to head off whatever I’m about to have to refuse, probably just my eyes crapping out on me, i’ve been out here all…

I trail off, defeated, when I realize a reply is already inbound. which one did it look like? i’m guessing not 22 or your ass would’ve run over there fast enough to leave scorch marks

I grit my virtual teeth and elect to choose my battles. too far away to tell

but if you had to guess. how tall was it, how did it move, what was it doing? come on nyx, give me something

just walking, I tell her. But Jessa would be more likely to drop this if it were glued to her hands, so I add, no way of knowing if it’s true, 02 or 21, maybe, just from the way it walked? But this is Jessa’s field of expertise, not mine. I’m pulling guesses from the air. In some fucked-up way I want it to be one of those two. Then I could finish out this thousand in peace, well outside of this what-if fuckery in which I find myself.

Seven minutes. Nine hundred ninety-two.

Only a few mobs left anywhere in sight. I only need a few, but these are way off in the distance in the absolute opposite direction from the beacon, because of course they are. I cast one last glance toward that glowing figure. Then I slam a fresh clip into the blaster as Jessa yammers away on the periphery.

were they with a player? that isn’t showing on the boards for either of them. i mean. not for any of them

I give my head a little irritated shake, like Jessa’s voice is a mosquito in my ear. Apart from three or four mobs in the distance, the airstrip is deserted, and no telling how long it takes these things to respawn in this playfield. My health has bottomed out low enough that my vision is starting to go red around the edges, and I can hear the bass line of my heartbeat in my ears.

It’s only when Jessa repeats the question that I make myself reply. not that i saw

reeeally

look, if it was earlier in the day i’d go check it out, but i gotta finish this up and get out of here before curfew

Another pause, and then: any chance it could’ve been 06? I can almost hear the fangirl fake-casual through the ten-point font. Like I have any room to talk.

like i said, I reply, marshalling my patience. A couple mobs are just about within blaster range, but barely enough that I waste half a clip trying to bring them down. Nine hundred ninety-three. Nine hundred ninety-four. Shot by precious shot I’m chipping away at the health bar of nine hundred ninety-five, but that one’s in body armor with regen shielding, and my blaster slugs are pinging off it like rain. it was probably nothing

but you definitely saw the beacon?

i saw a light. it could have been a flare, or… Over a shoulder, burning a second I don’t have, I glance back. No chance that’s a flare. No chance that’s anything but exactly what it is. Why did I even answer that much? I could have lied. I’m not streaming. She never would have known the difference.

but nyx. if it wasn’t nothing…

She doesn’t finish that thought and doesn’t need to. I know, down to the credit, down to the milliliter, what might be at stake here. If it’s one of them, and I’m the only one out here, and I haul ass over there and turn on the stream and get exclusive footage of whatever the fuck whoever the fuck that is is doing, by the numbers that’s worth way more than any thousand, any chance at the boards, or what that might earn me.

But I’m too far off now. I won’t make it back in time, not on foot and within licking distance of death as I am. I can’t afford to chase some what-if down some rabbit hole. Not today. Not when I’m so close to that stupid fucking thousand and a long stretch of free time tomorrow afternoon before my whole next slammed week starts.

Do the safe thing, I tell myself. Get the thousand and then stream your pathetic scrabble up the boards. The viewers love expressing their pity through company credits. It’s a few ounces of water you didn’t have before. Some noodles from the company store. Maybe even the good ones. Just walk away.

I want to listen to that rational part of my mind. I swear I do. But part of me keeps coming back to the time last year that Jessa and I bagged almost ten minutes of footage of 33 not even really doing anything interesting in particular, and that kept us in food and water for a week. I’ve heard about bigger scores, of course, like the one last month where chaoslogic topped the boards and took 42 on a two-day spree while being hunted across three dozen playfields by a zillion other players, all of them streaming the chase online. That guy and whoever took him down are going to be rolling in cash and company credits for a while.

It’s hard not to hear these things. It’s hard not to be tempted against what remains of your better nature.

And then there’s the little detail of 22. Out there, somewhere, complicating matters. The one-in-twelve chance it was his beacon I just turned my back on and walked away from. People beat odds worse than that all the time. The water lottery wouldn’t be raking in millions by the day if they didn’t.

That could be me and 22 on that two-day spree. It could be me and 22, period. If I make the thousand. If I climb the boards. If I get that top spot and my choice of the twelve.

Or. It could be 22 behind me, off in the weeds outside the airstrip with no one else in sight. Doing whatever the fuck he does in his free time, when players aren’t pointing and shooting him like the weapon that he is.

It’d be footage-worthy, yes, but I’d be lying if I said that was my foremost motivation here. If footage-worthy was my priority, I’d be hoping that was 06’s beacon, far and away the prevailing popular favorite.

No matter how hard I try to rationalize it, what this is is a personal project. There’s a time to pursue this kind of shit, and six kills to go on my thousand is not that time.

I suck it up and focus on drilling nine hundred ninety-five’s health bar down to the bedrock. Body armor. Why don’t I have body armor. Except I know why I don’t. It’s because I keep dicking around like this, wasting time weighing cold hard numbers against something much less, well, like I said. Intellectual.

Fuck it.

i don’t know what i saw, I tell Jessa, which is true. But deep down I know how this is going to play out. Maybe I can resist bait, but that’s never been Jessa’s strong suit.

yes, she replies, i’m getting that There comes a long pause, recognizable as Jessa’s lens interface calibrating. stay put, i’m coming to you

I flick a glance toward the timer and apply the last heal patch. It barely takes the edge off. Honestly, I could use the help. careful. five minutes to cutoff

i’m. coming. to you

well i’m on the move now but if you drop to the coords i sent you i’ll be

“—nearby,” I finish out loud as Jessa crashes to the airstrip like a meteor, not twenty yards away, close enough to shave a few precious points off my health bar. Worse, the concussion of Jessa’s impact deals the death blow to number nine hundred ninety-five before we get a chance to form an official team, so I get no credit for the kill. Outstanding.

I’m still taking low-key burn damage, and will for several seconds before the effect wears off. My health bar is running on fumes. I’m pretty much one gentle slap from death.

“Hey,” I yell in the direction of the crater, backpedaling from that wash of heat. “Goddamn it, Jessa, watch it.”

“Relax, I got you.” Sudden pinch as Jessa slides a heal syringe into my upper arm. Virtual or not, the implant knows its shit, and that needle stings. “But look, no real names in-game, I keep telling you.”

“Fine, QueenOfTheRaids,” I say, shivering as the heal syringe goes to work, the equal of half a dozen high-grade patches. The implant tells my nervous system that there’s top-shelf meds hitting my veins with delicious warmth. My vision begins to clear as the needle atomizes to voxels, and my health bar climbs. Still stuck at nine hundred ninety-four, though, and not so much as a lone infantry goon in sight. Four minutes.

Without a word, Jessa slides a second syringe into the pocket of my suit jacket. Familiar tiny ping as the syringe lands in my inventory. Tension drops from my shoulders. “Thanks.”

“I said I got you.” Jessa lifts her chin at the middle distance. “Lead on.”

“Wait wait wait. I got six left on my thousand. Help me first and then we go.”

“No chance. I just burned a suborbital drop getting to you. Do you know how long I’ve been holding on to that? Plus I just saved your ass. Those heals aren’t cheap.”

I consult my kill counter, like it will have budged spontaneously from six shy. I look at Jessa. She looks back at me, eyes gleaming silver. I do a double take before I can stop myself. “Are you streaming right now?”

“Of course I’m fucking streaming,” Jessa says. “What you think I’m out here for, a picnic? Say hi to Nycorix, guys!”

A pause, which was probably exactly that, but I don’t know, because I have them muted. Not that I’m about to tell Jessa that. “Hi,” I say.

Jessa leans in close to whisper. The illusion of privacy. “Look, we’ve got three minutes and change before they cut us off. I’ll make it up to you. Okay?”

Besides, it might be 22, she visibly chooses not to say. I have ground rules about what can and cannot be said on-stream, and this would top that list. It’s nobody’s fucking business, not even Jessa’s really, but you try living and working with the same person in the same room for four years and see how many secrets you manage to keep.

I sigh, which apparently stands in for an answer, because Jessa is already pulling her hoverbike out of inventory, already slinging a leg over it as it blinks into existence. She throws a glance back at me. “Then let’s go.”

I’m torn. All my rational thought is still clawing after that thousand and the chance it represents. But I don’t want to look like an asshole in front of our nineteen hundred subscribers, and asking Jessa to stop streaming would be like asking a hurricane to detour around your town. I’ve already got a reputation as the uptight one. No need to prove that point for them. Not when I can multitask my way out of this instead.

“Okay, but I’m driving. I’m going to try to run over a few more on the way.”

Jessa pulls a face but scoots back. “No scenic route.”

I raise my arms in a gesture at the blasted tarmac, now black with night, lit only by the smoking ruin of Jessa’s crater. “Do you see anything remotely resembling a scenic route.”

“I just hope you’re right about what you saw,” Jessa says, as if I’ve said I definitively saw anything, and I hammer down a little spike of irritation and goose the controls, and we’re off, skimming over the peaks and troughs of the half-melted landing strip like a skipped stone.

I take out nine hundred ninety-five as it respawns a few yards away from the edge of the crater, banking the bike hard right and straightening out just in time to run it down as it raises its blaster toward my face. It thunks under the platform and is lost. One down.

It’s almost fun this way. I should have thought of this ages ago.

We whir past Jessa’s crater and on into the dark.

“Near those buildings?” Jessa yells over the onrushing of slag-scented wind.

“Just past them,” I yell back. Then I spot a tiny cluster of mobs at maybe a hundred-yard diagonal from where I can just make out the thinnest silver needle of the beacon, meandering northeast. Jackpot. “Slight detour. Hold on.”

“Make it real real slight,” Jessa hollers. “Two minutes forty.”

“I see it.” I crank the hand controls and peel off eastward. When we’re within range, I draw the blaster, wrangling the bike left-handed.

Behind me, Jessa is busily spouting reassurances to the ether. “Nyx is just finishing up her thousand, guys, be right with you.”

“Four left,” I shout as an exosuit gunner drops to a lucky headshot. As that one falls, I light up the demolitions bot behind it. “Three.”

A message from Jessa pops up in the corner of my visual field. keep doing that crazy shit, they love it

you could be helping me shoot, you know

i didn’t want to team in the middle of a shootout? remember that time we did that and the game bugged out and wiped my progress on my thousand? you’re sooo close, it’s fine, you got this

Yeah. Sure I do. Two minutes.

I’ve got a good two hundred yards of straightaway in front of me, so I take my driving hand off the controls to prop the blaster on the bent elbow of that arm. As I take aim, the bike skids over something and unbalances, whipping in a full, loose, wobbling one-eighty. I miss my shot, wasting seconds as I wrestle the bike back around. I can’t see for shit now—it’s fully dark—so I pull up a minimap and start firing in the direction of the nearest enemy dots. I luck out, and my counter goes up by one.

Too slow. Behind me, Jessa’s clandestinely tugging on my sleeve.

just two left, I tell her.

no time

i need these last two

nyx there’s just. no. time. ok? we have people watching. we land this, it’s more important than your thousand and you know it

I think about chaoslogic and 42. By the end of that spree, he was streaming to over five million followers. By the end of that spree, he’d been hanging out with 42 for two days.

“More important to you, maybe,” I whisper aloud, because I know Jessa can’t hear me over the bike and the wind and the voices in her head. But there isn’t time for both this potential footage and my thousand anymore—there really isn’t. I rolled the dice on that one and I lost, and now it’s time for damage control.

As always, I shut my mouth and keep the peace. I holster the blaster, angle the bike toward a slot between buildings, and jam both controls forward.

It’s dark. So dark. The buildings we’re between now look like some kind of warehouses, and if the lights are on inside, they don’t make it through the windows. A crash would wipe us both, and then when the power comes back on tomorrow, we’ll respawn here. We’ve fought our way out of worse together, but the bike’s power cell is running low, my blaster is almost dry, and the syringe in my back pocket is the only worldly possession to my name. Unless Jessa has another power cell that I don’t know about, or we score some footage in the next two minutes that by some miracle earns us one, we’ll be slogging out of here on foot. We’ll—

“On your three!” Jessa shouts, and I snap out of it and turn my head fractionally to see. A glint of something to the northwest, a spire of light stabbing upward from the field beyond the airstrip, half a mile off, easy. You always forget how fast they can move until you’re tailing one. “Oh shit,” Jessa is breathing. “Oh shit. You guys see that? Ninety seconds, Nyx, you gotta punch it.”

I punch it. The hoverbike slingshots over the edge of the airstrip and into the weeds beyond. There’s some junk here mucking up any chance we had at clear terrain. The ruins of a building, maybe, or some dead mech rusting in the tall grass. Whatever it is, it’s annoying the hoverbike’s delicate calibrations. The whole platform wobbles like a spinning top that’s just been nudged.

Visibility is nil. Odds of a wipeout are escalating rapidly. But I race the clock toward that spike of light and, with thirty-six seconds left before cutoff, dump the bike into a skid that brings us within kissing distance of the figure’s boots.

Jessa doesn’t even seem to care that I’ve just dumped her bike, or that the power cell is now screeching angrily as the calibration systems try to get a grip on empty air, or that a third of her health bar has vaporized in the fall, and we have no back door out of this shitshow. She’s scrambling up and tilting her silver eyes right into the glowing figure’s face. “Guys,” she’s hissing. “Guys, you’re not going to believe this. Look who we found.

It isn’t, I tell myself, it isn’t, it isn’t. Hoping that what I see when I look up from the controls will prove me wrong.

It doesn’t.

It’s a young woman in a dark uniform, brown hair pulled back in a ponytail. On her face is an expression of vague bemusement. The number 28 floats above her head in the place where a name would be if she were a player character or a standard NPC. Below that her health bar is full and so red it’s almost black. I realize that she hasn’t just been aimlessly walking, she’s been reading meanwhile. Some comic book she must have picked up in one of the in-game vendors, or else, more likely, some player must have given to her for laughs. She pockets it without taking her eyes off us. I only catch the barest glimpse of the cover before the book vanishes into her inventory: several figures on a city street, their backs to me, facing down the vanishing point between two buildings and an unrealistically large mech emerging there. One of those figures is probably her.

28’s eyes track back and forth between Jessa and me and the wreck of the hoverbike, and that is the only part of her that moves. Then she huffs out an amused little breath and leans in like she’s going to tell me a secret. Jessa hustles out of the way and shoves me into her spot, eyes wide like that’ll give our subscribers a better view of whatever comes next.

I spare a glance for the timer. Nine seconds. Eight. Seven. I look up into the amused set of 28’s mouth, 28’s single raised eyebrow.

“Someone should really teach you how to drive that thing,” 28 says with cool derision, and I open my mouth to say something probably extremely ill-advised, but the cutoff alarm trills and everything goes dark.

Nicole Kornher-Stace is the author of the Norton Award finalist Archivist Wasp and its sequel, Latchkey. Her short fiction has appeared in ClarkesworldApex, and Fantasy Magazine, as well as many anthologies. She lives in New Paltz, New York, with her family. She can be found online at NicoleKornherStace.com, or on Twitter @WireWalking.

Firebreak is a simmering scream, a pot bucking on a stove after all the water's boiled away. It's a fight song in praise of fierce friendship and the strength to endure.” —Amal El-Mohtar, Hugo and Nebula award-winning author of This is How You Lose the Time War

Firebreak is a klaxon sounding at midnight. It is a howl and a wake-up call. It is a fire that does what literary fires do best: spits rage, radiates the warmth of compassion, and fans the flame of revolution. —C. S. E. Cooney, World Fantasy Award-winning author of Bone Swans: Stories

“A steadfast heroine stands up against a tyrannical corporation in this vivid work of dystopian sci-fi…. The effortlessly detailed worldbuilding is captivating. Kornher-Stace leads readers through the cinematic landscape of her imagined future with an expert hand.” —Publisher's Weekly

"Modestly, quietly profound… A resonant tale of erasure and absence—and an aching reminder that regaining what has been lost isn't always the answer.” —NPR, Archivist Wasp

“Gripping action… [with] deepening mysteries in restrained prose studded with flashes of vulgar brutality and startling poetry.” —KIRKUS REVIEWS, starred review, Latchkey