Killian Jones, aka Captain Hook played by Colin O'Donogue, was seen in the midseason finale of Once Upon a Time on Sunday that he had evil ways in his past.

When little Killian was seen in a flashback, he was devoted to his dad, played by Adam Croasdell. Unfortunately, Killian and his brother Liam were sold into slavery by their Papa Jones in order to get out of a messy situation.

A grown-up Hook became a drunkard and makes a deal with Evil Queen Regina played by Lana Parrilla, to assassinate her mom in exchange to bring him to a land where he can get revenge on Rumplestiltskin played by Robert Carylle. According to TV Guide news, to prove that Hook is worthy of matricide, he must commit patricide first. So, Regina brings Hook to his dad. But Hook spare his dad, and fake his death. But soon, Killian learns that his dad has had another son, a half-brother, also named Liam - who was also abandoned. That really irks Killian, and so he decides to kill his father as planned, stabbing him to death.

Hook sacrificed himself on the basis of a lie that really sucks instead of sacrificing himself to get rid of the darkness. After being forced to kill the man Emma loves, she was not pleased at all. Now Emma makes Rumple call the ferryman so that she can go to the underworld and save Hook. "Hook, I will find you," Emma promises.

Emma was originally going to sacrifice herself, but it failed when she's tricked by her former love.

However, when Hook gets hold of the dagger and is ready to bring everyone to the underworld, Mashable news said he changed his heart and demands Emma to stab him to save everyone before it's too late.

 "I don't want to lose you. But you have to let me go. Let me die a hero. It's the man I want you to remember," Hook cries. After one last "I love you" and a kiss goodbye, Emma stabs Hook.