“Once Upon a Time” fans are dying for answers about Emma (Jennifer Morrison) and they finally got them Sunday night. Episode 8 of the ABC series revealed many secrets about the Dark One and the other Storybrooke heroes.

Episode 8, titled “Birth,” kicks off in Storybrooke with David (Josh Dallas) confronting Arthur (Liam Garrigan) in his tent. He knows that the King of Camelot lied to them and wants to know why he burned the magic mushroom. He busts in, demanding answers about Nimue. But Arthur has no plans on coming clean. He escapes through the back of the tent into the woods.

Hook (Colin O’Donoghue) immediately chases after Arthur, but one wrong step sends the pirate onto the ground without his sword. Arthur’s about to end Hook when Emma appears with Excalibur – the whole sword. However, she doesn’t use it on the corrupt king. Instead, she knocks him away with her magic.

Grateful for Emma’s help, Hook thanks her and apologizes for his harsh words when they were on the Jolly Roger. He tries to tell her that the old her is still inside her and asks about Nimue. But Emma’s not ready to give out answers just yet. She tells him that Nimue doesn’t matter anymore and that all of this will be over tomorrow.

That’s not a good enough answer for Hook. He tells her that he knows she always has her reasons. And Emma confirms it. She tells him that she’s doing all of this for him.

Emma disappears in a puff of smoke, bringing “Once Upon a Time” viewers back to Camelot three weeks earlier. Emma has the Spark of Prometheus, but no Excalibur. When she gets back to Granny’s she learns that King Arthur managed to get the upper hand on her friends and family.

Merlin (Elliot Knight) appears and breaks the bad news to her – Arthur tethered him to Excalibur and he’s now under his control. Emma needs to hand over the dagger and flame or he’ll kill her family. Merlin knows that handing over the dagger and flame means taking a few big steps back from returning to the light, but he encourages her to accept it.

“Please do not seek vengeance,” he begs her. “Do not make the same mistakes as Nimue.”

Back in current-day Storybrooke, Hook goes to Rumple (Robert Carlyle) to find out more about what’s going on inside Emma’s head. Rumple tells Hook that it’s not about what he did, but what Emma did in Camelot. It’s up to Hook to find out what she’s atoning for.

OUAT Season 5, episode 8 Hook is desperate for answers in Season 5, episode 8, of "Once Upon a Time." Photo: ABC

Hook attempts to seek out Emma, but Emma doesn’t want to see him. That makes the pirate resort to a desperate measure – jumping off of the clock tower. Emma appears and saves him from falling to his death.

Hook begs her for answers and promises that he already forgives her for whatever she did.

“I love you, Emma Swan,” he says. “No matter what you’ve done.”

Episode 8 cuts back to Camelot to reveal that Emma is struggling to ignite the Spark of Prometheus. Her hallucination of Rumple appears to explain that the spark can turn into a flame only when she’s ready to let go of the darkness. So, why can’t she light it?

Henry (Jared S. Gilmore) tries to encourage her by telling her about Operation Light Swan. It turns out that Hook was searching for a house in Storybrooke that the two could move into together. The house would act as a promise, a plan for the future.

Henry’s revelation gives Emma hope, but not to light the flame. Instead she decides that she needs to use her darkness one last time to confront Arthur.

OUAT Emma (Jennifer Morrison, left) gets the upper hand on Zelena (Rebecca Mader, right) in Season 5, episode 8, of "Once Upon a Time." Photo: ABC

Emma tricks the king into thinking that she ignited the flame. In reality, she uses her magic to bind Zelena (Rebecca Mader). Hook takes advantage of the distraction and gets out of his chains to punch Arthur, knocking Excalibur from his hand.

Meanwhile in Storybrooke, something is happening with Zelena. Even though she’s only two months pregnant, dark magic makes her appear nine months. Regina (Lana Parrilla) and Robin (Sean Maguire) rush her to the hospital, but now they have another thing to worry about – they think that Emma wants the baby.

As the others prepare for Zelena to give birth, Emma brings Hook back to her house. She reveals that he was the one who picked it out and that everything she’s doing is to keep their future alive. Although they’ve been though many hardships, she tells him that she’s almost there. The two kiss, but Emma still can’t tell him what she’s up to. She knows that he’d do everything in his power to stop him -- which is why she uses the kiss to knock him out.

Another flashback tells the rest of the story from Camelot. Despite having Excalibur, Emma can’t ignite the flame. Regina tries to use the dagger to force Emma to tell the truth about why she can’t light it, but Emma doesn’t confess her true feelings. She lies to Regina, telling her that she’s afraid she can’t protect her family if she gives up the darkness.

Hook stops Regina before she can go any further with Emma, but it was the push that she needed. When Hook confronts her later, she tells him that the truth is that she’s afraid of their future. She’s afraid because she does want a future with him, and igniting the flame means moving forward. That confession is exactly what lights the flame.

The episode ends with Hook chained up in Emma’s basement with Zelena. The witch gave birth to a baby girl, but Emma didn’t want the baby – she wanted Zelena. She went to the hospital and kidnapped her. Emma reveals that her plan is to give Zelena her dark magic and then destroy Zelena with Excalibur. She sped up Zelena’s pregnancy because she didn’t want to hurt the baby.

Hook doesn’t agree with Emma’s decision, but Emma has her reasons for choosing Zelena – Zelena was responsible for the deaths of Neal (Michael Raymond-James) and Marian (Christie Laing). Still, Hook insists that Merlin can help them. However, Emma breaks the news that the wizard can no longer aid them in getting rid of the darkness.

Emma goes off to confront Regina, David and Mary Margaret (Ginnifer Goodwin) who are outside the house ready to fight for Zelena. Meanwhile, Zelena and Hook use the opportunity to hatch a plan to escape that involves using magic from the pirate’s hook. The hook is able to remove Zelena’s magic-free bracelet, which gives her back her powers.

Zelena escapes through a back door, but Hook’s not ready to abandon Emma. He searches for answers in her house while Emma enacts some sort of spell by hitting Excalibur on the ground.

Emma enters to find Hook digging through her house. But before she can stop him, he uses squid ink to freeze her. Zelena re-enters the house to “make the Dark One pay.” She stabs Hook in the chest with a blade – but Hook doesn’t even feel the knife. Why? Zelena promises him answers with a dream catcher she found in the backyard.

The dream catcher reveals everything from Camelot – Emma was about to use the flame to combine Excalibur with the Dark One’s dagger but Hook collapsed before she was able to do so. It turns out that he was cut by Excalibur when he attacked Arthur. Although Emma had healed him at the time, no one ever survives a cut from Excalibur.

Merlin tells Emma that there is nothing she can do, but that’s not an option for her. She says that they can use the flame to tether Killian to Excalibur, but Merlin urges her not to do so.

“I’m not going to lose Killian,” she tells him. “I’m not going to let anyone stop me.”

Emma uses her magic to take her and Hook to a field of flowers where she tethers him to Excalibur and he rises as another Dark One.

“I’m so sorry but I did not have a choice,” she tells him after he learns what happened.

But Hook doesn’t seem willing to accept an apology. He’s not happy that she turned him into the Dark One, or that she kept the secret from him.

“So much for our future,” he tells her.