"Arrow" Season 4 introduced the character Vixen (Megalyn E.K.) to the live-action series in episode 15, "Taken." The CW

With all of the hero’s secrets laid out for his villain to exploit, Wednesday's episode of the CW's “Arrow” got into some pretty dark territory. At last, the team faced off against its principal villain of Season 4, only this time, they had some magical help of their own to level the playing field in episode 15, “Taken.”

The episode opens with Felicity (Emily Bett Rickards) trying out the new implant that Curtis Holt (Echo Kellum) gave her. He explained in last week's episode that he believes it will eventually help her walk again. Sadly, it doesn’t work and as they’re leaving she needs a small pep talk from Oliver (Stephen Amell) in the parking lot. Before they can finish, they’re interrupted by the villain Damien Darhk (Neal McDonough). After kidnapping Oliver’s estranged 10-year-old son, William (Jack Moore), the magical bad guy wants mayoral candidate Oliver Queen, who he doesn’t yet know is The Green Arrow, to drop out of the race or he’ll hurt his son.

It’s bad enough that he’s kidnapped a small child, but he revealed his evil plan in front of Felicity, who had no idea that William even existed. She’s less than thrilled with Oliver for keeping it from her, to say the least, but the Team reacts well to the news overall and gets to work on the rescue. The problem is that they have no way to track Damien Darhk since his powers are based in the world of magic, which is foreign to them. The last time they had a problem that required a mystic, they called on John Constantine (Matt Ryan), but Oliver explains that he’s currently in hell … literally. Instead, they turn their sights on Oliver’s friend from the CW Seed’s animated series, Vixen (Megalyn E.K.). She is a hero based in the city of Detroit and has a special amulet that allows her to summon the power of any animal she chooses.

Before Oliver calls on Vixen in Detroit, he has to talk to William’s mother, Samantha Clayton (Anna Hopkins). She went to the police in her hometown of Central City when the boy went missing and, apparently, Barry Allen (Grant Gustin) from “The Flash” explained to her that Oliver Queen is involved. She goes to his campaign office and starts getting enraged at his constant pleas for her to trust him. Finally, in order to quell the mother’s fear, Oliver confesses that he’s The Green Arrow. He takes her down to the lair and lets her in on the plan to save William.

Once Vixen arrives, they give her a toy for her to track the boy. It leads them to a hotel where, presumably, Darhk is keeping his prisoner. Team Arrow attacks, but the villain is ready for them. He stops Oliver with his magic powers and tells him that he moved William two hours before he felt them arrive. Vixen comes through the window to help and pits her magical powers against Darhk's. Despite her best efforts, the villain bests the hero and escapes. When the team retreats to the lair to lick its wounds, Darhk calls Queen and tells him that the attack forces him to move up his time table. He insists that he drop out of the race that night or William dies.

After beginning the season with the mission of saving the ailing Star City in the light of day, the hero calls a press conference and not only reluctantly suspends his campaign, but throws his full public support behind his opponent, Darhk’s wife Ruvé Adams (Janet Kidder).

While that’s happening, Vixen suggests to the team that they need to figure out the source of Darhk’s magical powers. Quentin Lance (Paul Blackthorne) mentions that, while he was working for Darhk he used to worship at an odd-looking totem. With the help of their new hero friend, they track the villain to a cabin in the woods. However, he calls them and tells them that he’ll release William in three hours thanks to former mayoral candidate Oliver Queen’s compliance.

Armed with all that information, the team has a choice to make. They can hope Darhk keeps his word and try and recover William in three hours, or attack his totem and see if they can disarm him of his magic once and for all. Ultimately, they leave the decision up to Samantha, who steps up to the plate and gives them permission to risk her son’s life to stop Darhk.

They attack his opulent cabin in the woods and manage to hold off his armed guards long enough for Vixen to break in and snag the source of Darhk’s power. Enraged, he walks outside and starts using magic to choke the life out of Oliver, Laurel (Katie Cassidy) and Thea (Willa Holland). Once Vixen has cleared the scene, she uses her powers to smash the totem and it completely drains Darhk of his powers. Now that he’s mortal, Oliver has no trouble beating him into submission and rescuing his son. However, it’s not the happy ending that it seems.

Realizing that this kind of thing will continue to happen as long as he’s a presence in his life, Oliver makes a video confession to William to be played on his 18th birthday. In it, he explains everything, including the fact that he’s the Green Arrow. He reveals that he asked Samantha to move them away and not tell him where. In doing so, no one will ever be able to use them as leverage against him again. As he wraps up the video, Felicity enters with a very sad message. Now that everyone is out of danger, she’s had time to process Oliver’s cavalcade of lies. She tells him that she cannot be with him if he’s going to have this many secrets. As she’s placing her engagement ring on the table, Curtis’ implant seems to kick in. The episode ends with a bitter, but triumphant, moment in which Felicity stands up and walks out of the apartment for the first time since getting shot.