May 28, 2023

Review: The Adventures of Amina al-Sirafi

The Adventures of Amina al-Sirafi The Adventures of Amina al-Sirafi by S.A. Chakraborty
My rating: 5 of 5 stars

This is a marvelous tale of pirating, motherhood, estranged demon husbands, and the price of dreams: both of denying them and pursuing them.

The titular character and protagonist, Amina al-Sirafi, is a retired pirate queen who quit the business after her daughter Marjana was born, gifting her ship, the Marawati, to her first mate Tinbu. Ten years later, Amina, Marjana and her mother are eking out a living on a seaside farm when a woman named Salima appears, wishing to hire the infamous Amina al-Sirafi to track down her missing granddaughter. Amina knows she should not take the job, but the chance for one last adventure, an opportunity to return to the sea one more time, proves impossible to resist. She sets out to gather together her old crew, reunite with her ship, and hunt down the missing Dunya, and in the process gets in more trouble than she could have ever imagined.

The worldbuilding and characterization here is top-notch. This is set in the Arab-Muslim world of the twelfth century in and around the Indian Ocean, with all the diverse peoples and cultures of that era. There are also magical creatures and monsters, portals to alternate dimensions, and a "Frank" (the word of the time for Western European) who wishes to gain enough magical power to burn down the world, and who Amina has to go up against. The descriptions of seafaring life are spot-on: the reader can almost taste the salt and hear the waves.

Amina is the rare protagonist who is past forty and a mother, who has lived a full life with many mistakes and regrets. Her biggest regret is giving up her ship and her dreams of exploration, even though she did it for her daughter. This theme of thwarted dreams runs through the book:

For how could I enjoy being on the Marawati if it kept me from Marjana? Especially on a mission so dangerous?

But I did. I loved it. I had always loved it. I loved being on my ship, the wind in my face and the salty damp on my clothes. I loved taking pride in running a tight vessel and a capable crew, jesting with my companions and rising each dawn to see a new expanse of water stretching towards the horizon. Seafaring had been stamped into my soul long ago; there was no rooting it out.


This "one last job" leads Amina into dangers and worlds she could never have anticipated, and brings her face to face with Raksh, the estranged demon husband she thought she bound ten years ago (and who is also the father of Marjana, though he does not know it). Raksh is another well-written character, a cowardly, craven, self-absorbed betrayer who does his level best to make just about any situation worse. But Amina cannot get rid of him, not yet; she finally faces up to the fact that one day Marjana will need to know the truth about her heritage. And even after this one final dangerous adventure, Amina's own dreams have never left her:

I had never stopped being a nakhuda [a ship owner, authority at sea per the glossary], never stopped being an explorer. It wasn't this accursed demon or spirit of discord or whatever he called himself putting alien desires into my soul: I wanted to travel the world and sail every sea. I wanted to have adventures, to be a hero, to have my tales told in courtyards and street fairs, where perhaps kids who'd grown up like me, with more imagination than means, might be inspired to dream. Where women who were told there was only one sort of respectful life for them could listen to tales of another who'd broken away--and thrived when she'd done so.

I wanted to show Marjana that. Not now. But when she was older, when it was safer. I wanted to teach my daughter to read the waves and the night sky, to see her eyes widen with wonder and curiosity when I brought her to new places, new cities. I wanted to give her all that I'd had to take, positioning her to enjoy opportunities I could never imagine.


There are quite a few twists and turns in this tale, which gets more magical and fantastical as it progresses. The pacing is deft, the characters flawed and realistic, and Amina's voice carries the reader right along. This story clearly sets things up for more adventures to come, and I hope it sells enough that the author gets to write them. If so, I'll be right there rooting Amina and her crew on.

View all my reviews

May 17, 2023

Review: Some Desperate Glory

Some Desperate Glory Some Desperate Glory by Emily Tesh
My rating: 5 of 5 stars

This is my first five-star read of this year. It surprised me because when I read the author's two previous works (novellas), I liked them but wasn't gosh-wow impressed. However, this book had more room for worldbuilding and (especially) characterization. Together with the themes of fascism, genocide, self-determination, and the exploration of a repressive cult-like atmosphere, the book built to an earned, triumphant ending.

I also loved it in spite of the fact that the main character, Valkyr, starts out as a very unlikable person. In the story's first two sections, she is a nasty, ruthless bully, so caught up in the propaganda and authoritarian culture of the breakaway Gaea Station where she was born and raised that she does several reprehensible things. But though she is not nice by any stretch of the imagination, Valkyr, or Kyr, is a well-written, compelling character that the reader wants to follow. Maybe at first to see if she gets her comeuppance, but as the story progresses and her painful redemption arc begins to take shape, I found myself rooting to see if she could truly change and come to terms with what she has done and what is happening around her. The secondary characters, particularly the computer whiz Avicenna and the alien Yiso, are interesting enough that I wished they could have had sections of their own (Kyr is the only viewpoint character throughout). Still, this tight focus on Kyr and her internal struggles as her entire world is upended makes for fascinating reading.

We open with a virtual-reality depiction of Doomsday, the central event of Kyr's life, even though it happened when she was only two years old. This occurred when humanity was defeated by the alien majo and Earth was destroyed by an interdimensional weapon. In the years since, four dreadnoughts bearing the few thousand survivors of humanity (or "true humans"--Gaea Station has, among its many other fascistic tendencies, an unpleasant strain of eugenics) established the station to recoup and continue to fight back. Indeed, the station's motto is "while we live, the enemy shall fear us." Gaea Station is powered by the dreadnoughts' "shadow engines," a bit of admitted handwavium by the author that plays a pivotal point in the plot and the station's eventual destruction.

Kyr's training is almost complete, and she expects to be assigned to one of Gaea Station's combat wings. However, she is instead assigned to Nursery, the forced-pregnancy wing of Gaea Station where future cannon fodder warriors are born and raised. This constitutes the first chink in Kyr's worldview (and of course she only starts questioning the way things are done when this horrific thing happens to her--empathy is one of the many things she has to learn). This jump-starts the entire plot, leading to Kyr's going up against the Wisdom, the alien interdimensional artificial intelligence that manages and nurtures the millions of alien worlds and also destroyed Earth.

We spend some time in a Wisdom-generated alternate timeline during the course of the book, which is pivotal to Kyr's character arc. This happens after she flees Gaea Station, following her brother Magnus to a planet where she thinks he has been assigned to a suicide mission. There she learns what the commander of Gaea Station, a man she has looked up to and well-nigh worshipped all her life, did to her older sister Ursa. This is as bad as you'd expect, given a mentality that thinks it's perfectly fine to force women to breed more soldiers. Kyr and Avicenna team up to take over the Wisdom, but Avi then uses his control of the interdimensional "god machine" to wipe out virtually all of the alien worlds. Kyr's brother Mags (who never wanted to be a soldier and was forced into it by Gaea Station) then kills himself. Kyr is so broken by her brother's death she manipulates the sentient Wisdom into returning her to the pivotal point of her timeline, Doomsday, where she stops the death of the Earth. This launches the alternate timeline that leads Kyr to destroying both the Wisdom and Gaea Station and freeing everyone on the latter.

This book has a twisty plot, but I was able to follow it well enough. In any case, my focus was on the characters, especially Kyr. There are some heavy topics tackled here, but seeing them through Kyr's viewpoint makes for a thoughtful, exciting story. I really enjoyed this.

View all my reviews

May 8, 2023

Review: Antimatter Blues

Antimatter Blues Antimatter Blues by Edward Ashton
My rating: 4 of 5 stars

This is the sequel to Mickey7, which I read last year. This continues the story of Mickey Barnes, the "Expendable" of Niflheim Colony, and explores the consequences of the first. The colonists are facing a shortage of the antimatter that powers the colony, and "winter is coming" (with no help from George R.R. Martin). Hieronymus Marshall, the leader of the colony, demands that Mickey retrieve the antimatter bomb he left with the native intelligent species, the "creepers," to prevent Marshall from wiping them out in the first book. Now the colony needs the bomb, to restock its fuel and save everyone from starving and freezing.

Only thing is, Mickey never left the bomb with the "creepers" to begin with, and when he goes to retrieve it....it's gone, of course. This sets off this tale of survival and delves quite a bit into the ecology and other intelligent species of Niflheim (and reveals horrors the colonists never suspected), which is the thing that sets it apart from the first book. Otherwise, this would be an uninteresting retread, but with those elements it turns into a nail-biting thriller.

In the first book, Mickey was an "Expendable," who took all the risks, died all the deaths, and was uploaded and reinstalled in other cloned bodies. He's retired from that in this book, but Marshall is still threatening to throw him in the "corpse hole" (everything put there is recycled into "slurry" to help feed the colonists, which is a repulsive detail I didn't grasp from the first book). He also has a romantic relationship with Nasha Adjaya, who is rather badass in this book. There isn't as much discussion about identity and exploitation in this book, because Mickey has proven himself and has friends to support him. He's still not sure of himself or his place in the colony, but in the quest to reclaim the bomb he steps up and grows into a new role as leader.

The expanded worldbuilding of the planet is the most interesting part of this book, as we discover another "creeper" society in the south (which has a kind of horror tinge to it) and we spend some time with a creeper called Speaker, who becomes Mickey's friend. This book moves right along with a good pace, not overwhelming (there is enough time for character moments) but not dragging either. And at the end, a surprising character (not Mickey) makes the ultimate sacrifice to keep the colony alive.

There is supposed to be a movie made from the previous book, coming out this year perhaps? The narrative has a definite cinematic feel to it, and would likely make a good film. In the meantime, this book is definitely worth your time.

View all my reviews

May 3, 2023

Review: Spice Road

Spice Road Spice Road by Maiya Ibrahim
My rating: 3 of 5 stars

This is a debut author, and as such the book has some of the typical first-time-out problems: plot holes (when the protagonist says she knows where her missing brother has gone and who he is with, none of the adults grilling her think to ask: "And how do you know this exactly?"), and sometimes inconsistent characterization and pacing.

That said, this is an interesting Middle Eastern-inspired fantasy with themes of colonialism and classism. Sometimes those themes are hit pretty heavily, but since the protagonist Imani comes across as a pretty naive sort who requires some shocks to jolt her out of her sheltered worldview, this harsh awakening seems to be necessary. Imani and her family live in the city of Qalia, which has been isolated by magic from the rest of the country of Alqibah for a thousand years. Imani is a Shield, a member of a fighting unit which protects Qalia and the rest of the region known as the Sahir from the various monsters found there. Imani, the other members of the Shield, and the various sorcerers in Qalia gain their powers by drinking a magical spiced tea. This gives rise to the book's opening line: "We will fight, but first we will have tea."

Over the course of the book, Imani goes from rigid in her thinking and loyal to a Qalian Council that she discovers has lied to her, to discovering the truth about the outside world and the people who live in it. She follows in the footsteps of her elder brother Atheer, who has made a similar journey and is using the magic of the misra spice to help Alqibah, which is being overrun by the colonizing Harrowlanders. Some of her character arc is a bit clunky, and the dreaded YA love triangle is clearly being set up between Imani and two other characters. (I've been spoiled about love triangles ever since I read Xiran Jay Zhao's Iron Widow, where the author says, "Screw the heroine's having to choose," and the three characters enter into a polyamorous triad.) Another prominent character is Qayn, a thousand-year-old djinni who was once the king of an ancient city and who helps Imani find her brother. (Of course Qayn has a hidden agenda, as does Taha, Imani's fellow Shield who leads the expedition to find Atheer.)

This book has its flaws, but it has enough promise for me to continue with the story.

View all my reviews

May 1, 2023

Review: Why Don't You Love Me?

Why Don't You Love Me? Why Don't You Love Me? by Paul B. Rainey
My rating: 4 of 5 stars

This is not the sort of graphic novel I've been reading lately. The art is black and white, and it's presented in more of a newspaper (or possibly web comic) format, a bit more episodic in feel instead of a single overarching story. And yet the single overarching story is just what it contains. The genius of the writer is that his story sneaks up on you gradually, until the defining plot twist halfway through that makes you look back on the first panels in an entirely different way.

Still, there is more than enough weirdness in the beginning to keep the reader's attention, and the characters carried me past the simplicity of the art. Our protagonists are Mark and Claire Hopkins and their children Sally and Charley (although Mark keeps calling his son "Tommy," the first tipoff that something is off kilter). Claire is suffering from what appears to be clinical depression--at the beginning, she sits around the house all day, refusing to go outside, demanding Mark and/or one of the kids go every day to fetch her wine and cigarettes and asking the kids to bring her food. Mark has taken off work to help, and in fact is rather reluctant to return to the office, as he insists he should have been a barber instead of a website manager (the second hint that something is wrong). The first half of the story is taken up with this domestic drama, with Mark and Claire clashing over her illness, his job, and the kids. In fact, the reader (or at least this reader) starts to question the whole point of this story.....until the mid-book plot twist hits and everything changes.

From there, the story tackles issues of identity, free will, family ties, the choices we make and the roads not taken. Everything about our characters and their lives is retextualized with this new information. It's masterfully done, and the ending is at the same time hopeful and more than a little depressing--because you realize what has happened to Mark and Claire twice already is probably going to keep happening again and again.

I haven't read another graphic novel quite like it. The only reason I didn't give this five stars is because the art isn't that great. (I mean, would it have killed the author to include a few splashes of color?) But the characters and story were more than enough to carry me along. This is about as far from the Marvel and DC universe that a graphic novel can get, and that is a good thing. I don't think the big comics imprints would have taken a chance on a subversive, genre-bending story like this, and I'm very glad it's in the world.

View all my reviews

April 26, 2023

Review: The Strange

The Strange The Strange by Nathan Ballingrud
My rating: 4 of 5 stars

This book surprised me. The afterword relates how a friend of the author's came up with the pitch: "It's The Martian Chronicles meets True Grit!" which is true. It's certainly a tribute to Arthur C. Clarke. But it goes further back than that, to Edgar Rice Burroughs and his vision of Mars (before we discovered what a radiation-soaked, airless hellhole Mars really is, of course) where people can walk the red sands without protective suits, breathe the air, live in aboveground habs, and grow crops in the non-percholated soil.

It's also a steampunk alternate history set in 1931, where someone landed on Mars in 1864 (more shades of Burroughs, although at least Chance Peabody, Ballingrud's intrepid pilot, isn't a Confederate veteran). The settlement where the protagonist, Anabelle Crisp, lives is called New Galveston. She and her father run the Mother Earth Diner. The story opens a year after what's called the Silence, where communication with Earth is abruptly cut off and no resupply ships have arrived. Anabelle's mother received a message that her own mother was dying and left for Earth on the last ship out, and Anabelle and her father have heard nothing since. The Martian people have of course been traumatized by this, and their society is starting to break down. Another complication is the Strange, the mineral they are mining from Mars and shipping back to Earth that powers their robots (called Engines of various kinds). The miners who breathe in flecks of this mineral have eerie green luminescent eyes, and the Strange is starting to affect the Martian Engines and the people as well.

Anabelle Crisp is clearly modeled after Charles Portis' Mattie Ross, also being a 14-year-old girl who has to step up to save her father. Anabelle is a gritty and stubborn heroine who doggedly sets out to rescue her mother's "cylinder" (this universe's equivalent of a memory card for the Engines) which was stolen by raiders from Dig Town, the mining settlement. She strong-arms Joe Reilly, the pilot of the last ship to touch down before the Silence, into going with her. The book is the story of Anabelle's quest, and the unsettling things she discovers about the Strange along the way. This story is nominally science fiction (if of the retro variety) but veers--very effectively--into creepiness and horror. It's well paced and keeps the reader turning pages.

This has an old-fashioned pulp feel to it. I hadn't thought that would be up my alley, but it was an engaging story. Give it a try.



View all my reviews

April 23, 2023

Review: Untethered Sky

Untethered Sky Untethered Sky by Fonda Lee
My rating: 3 of 5 stars

This novella started out strong, but fizzled away at the end. Part of the problem was that the stakes dropped to almost nothing about halfway through: our protagonist, Ester, attained her goal of becoming a "ruhker" (training and flying a giant raptor called a roc) and using her roc, Zahra, to kill manticores--the mythological monsters that blight the kingdom of Dartha--and there's not a lot that happens after that. There are some feeble stabs made in the direction of letting go of the hate and obsession that has ruled much of Ester's life (a manticore killed her mother and younger brother when she was thirteen, setting Ester on the path to becoming a ruhker), but that storyline isn't explored as well as it could have been.

What keeps this book on the "recommend" side of the ledger is the lovely writing and the fascinating information about training and flying birds of prey. It's made clear early on that as much as Ester loves her roc, Zahra does not love her back; indeed, at the book's climax, Zahra meets a wild male roc and simply leaves Ester behind without looking back. Ester knows their relationship is unequal:

So I watched and guarded Zahra with all the paranoia of a jealous bridegroom. My love was entirely possessive. When you love a person, you are expected to give them their freedom, but when you love a monster, you keep it caged. A monster can't love you back, so there's none of the guilt of a reciprocal relationship. You're already subjugated. You're already holding yourself captive in a cruel way, so you justify whatever unusual bonds you level in return. I bargained with Zahra in my heart. I've already given you everything of myself. I've left my home, I've braved death, I've devoted myself to your care and training. I hunt with you and for you, I deliver all the bloodshed you crave, I worship you with my weak human frailty. In return, you must stay. You must make me worthwhile. You must be leashed to this cadge and kept in this pen, and you must never fly free as you were born to do, because I will never be free of you either, and we are partners in our captivity, each perfectly monstrous in our own way.

There's some fascinating ideas here, but they're not really explored. I wonder if this story would have been better at a longer length, because what we've gotten seems to be a bit superficial. Still, there's enough to make this worth your time.

View all my reviews

Review: Descendant Machine

Descendant Machine Descendant Machine by Gareth L. Powell
My rating: 3 of 5 stars

I really liked this author's previous trilogy, the Embers of War series. His second series, Continuance, is not as good. The setting here is a hundred and twenty-five years (seventy-five years for the first book, Stars and Bones ) after a nuclear war stopped by the godlike energy beings Angels of the Benevolence. Humanity is punished for its treatment of the planet by being banished to the Arks of the Continuance, a traveling fleet of megaships that will ramble the galaxy into the forseeable future, as humans will not be allowed to infect a biosphere again.

I didn't care for this backstory too much, and thankfully none of it comes up in this book. This is an entirely new story with new characters, and almost no references to the Angels of the Benevolence. We are dealing with a Big Dumb Object that gets reactivated when it really really shouldn't and a story that spans several billion years, from the end of the universe back to the beginning. Yes, there is time travel, utilizing the FTL method in this universe (the "substrate," which is basically another dimension underlying our own that spawns wormholes and can only be navigated by an organic brain), and universe-shattering stakes.

The new characters include Nicola Mafalda, a navigator who suffers a rather horrifying injury in the prologue; her scout ship, the Frontier Chic, who presents this story in the form of a "report" to the Council of Ships; Kona, Nicola's on-and-off-again alien lover, who requests her help to deal with a rogue faction of his people, the Jzat, who want to activate the Big Dumb Object, the Grand Mechanism; and Orlando Walden, a very young, immature and egotistical Big Dumb Object and substrate expert called in by said Jzat rogue faction to study it.

The author has always been fond of alternating first-person viewpoints and that trend continues here, although Nicola narrates the majority of the chapters. This is a good thing, as she was a nice character to spend one's time with. (Orlando, not so much. He undergoes a sudden character evolution that was pretty unrealistic, and his chapters really should have been rewritten.) This particular book is pretty plot-heavy, and as a result the pacing is ramped up to accommodate. There's not as much of an emphasis on character as the previous trilogy, but what's here is adequate. This series, so far, isn't living up to the standards set by the Ember of War books, but it's a pleasant enough space opera to lose oneself in for a few days (or hours, I suppose, depending on how fast you read).

View all my reviews

April 17, 2023

Review: Meru

Meru Meru by S.B. Divya
My rating: 4 of 5 stars

This is a science fiction romance that tackles some pretty heavy issues: the future of humankind following our disastrous Anthropocene Era; how, or if, humans should be punished and/or restricted for what they've done to the planet; and the complete realignment of thought as to life and consciousness and the necessity to minimize the human damage to both. All this is nestled inside a love story between a human woman and a genetically engineered cyborg/post-human Alloy named Vaha, who is basically a 120-meter long space mermaid capable of surviving in vacuum and creating her own wormholes to travel to other systems. (Don't worry, Vaha can also create a secondary body called an "incarn" which can hold her transferred consciousness, and can relate to and fall in love with the human protagonist Jayanthi.)

There is quite a bit of thoughtful and detailed worldbuilding here, and the author carefully examines the ratifications of her premise. This is set centuries in the future when the posthuman Alloys have taken over, saved and mostly restored planet Earth. Due to the Compact written at the start of the Alloy Era, humans are confined to the planet. Capitalism and exploration are things of the long-ago past; the alloys provide all human needs and human ambition is strictly discouraged. There's even a diagnosed syndrome called Aspiration and Avarice Disorder which can be treated in humans via gene therapy.

As the story starts, there's a newly discovered habitable planet called Meru that the Alloys are opening to research missions. One of our protagonists, Jayanthi, is uniquely suited to live on the planet due to her sickle cell anemia syndrome, which she has not used gene therapy to cure, as Meru's atmosphere has a higher oxygen percentage than Earth's. Jayanthi wants to demonstrate that humans should be permitted to explore the stars again, and an alloy named Hamsu manages to push through a research mission with Jayanthi at the center of it.

The alloy pilot Vaha is recruited to fly Jayanthi to Meru, and their connection and love story begins. (It's not quite insta-love, but it's close; their connection is immediate. They are both very young, twenty and twenty-two respectively. One wonders how long such a relationship can last, but the author does a good job of showing their deep feelings for each other.) But there are factions who want the mission to fail, and Vaha's former best friend Kaliyu, who harbors an irrational bias against humans, is recruited to sabotage the mission.

There are quite a few twisty plot turns here, as Vaha and Jayanthi are separated, Vaha suffers an accident that temporarily strips away most of her memory, and Jayanthi is abandoned on Meru. She manages to talk the artificially-intelligent constructs on the planet into taking her offworld, and ends up aboard another constructi, Chedi, a free agent who travels through the system. Jayanthi is also pregnant with her own genetically engineered child (a child bearing some of Vaha's genes) that she created to force the mission on Meru to continue. Once Vaha and Jayanthi are reunited and Vaha recovers (some) of her memory, they end up on the Nivid, the one permanent alloy construct in the system that is a repository of all alloy and human knowledge. They are then put through a series of trials that will determine the future of humanity.

There are a lot of ethical and philosophical conundrums explored in this book, as the alloys basically look at humans as misguided children that need to be guided, protected, and restricted for their own good, and Jayanthi is trying to show that the rules of the Compact are are patronizing and outdated. She and Vaha don't quite win in the end, but there is hope for the future of humanity and their daughter Akshaya.

This is a deep and thoughtful SF story that will reward a careful reading. There is action here, but it is not particularly fast-paced, and the romance between Vaha and Jayanthi plays an important part. This took me quite a few days to read, as it is not a story to be rushed through, but you will be rewarded.

View all my reviews

April 14, 2023

Review: Clarkesworld Magazine, Issue 198, March 2023

Clarkesworld Magazine, Issue 198, March 2023 Clarkesworld Magazine, Issue 198, March 2023 by Neil Clarke
My rating: 3 of 5 stars

The March issue of this magazine has a pretty strange cover--is that supposed to be the International Space Station, next to what looks like a space suit that would dwarf planet Earth?--and I don't think the stories this time around are quite as good as last month's.

There is one standout, Isabel J. Kim's "Zeta-Epsilon." This short story has a wonderful first line:

Start at the cleave of it, not at Zed’s meat death or Ep’s centuries-long destruction, but at the moment that Zed halves his own mind and walks away.

I mean, how can any reader not want to know what's behind that? The rest of the story delivers on this promise, with the story of pilot Zed and the starship Epsilon, united in mind because without the human Pilot's perspective, sentient Navigators inevitably kill their passengers. But Zed grows increasingly unhappy, and his "sister" Ep fakes his death and lets herself be decommissioned rather than allowing him to live a life of misery. Once Zed recovers and realizes what Ep did, he goes back for her:

Zed didn't stand up and swear at them and say that if they're talking to Zed, they're talking to Ep, she can hear everything you're saying. Zed didn't say that you don't know what you created when you and my parents made me and Epsilon into myself. Zed didn't say that you were the ones that called her my sister, and it's too late, now I have always loved her and she has always loved me, and I cannot imagine thinking without her.

Isabel J. Kim has not been publishing very long, but the stories I've read of hers have almost always been outstanding. She has a bright future.

Just as a reminder: Due to the usual Amazon fuckery, SFF magazines like Clarkesworld are going to have hard times in the very near future. If you're subscribing to the magazine through Amazon, go here to find alternatives. I've received a print edition of the magazine for years, and I urge you to subscribe as well, either in print or ebook.



View all my reviews