ADVERTISEMENT

Sequel power: A review of I, the Executioner

Published Sep 25, 2024 02:30 pm

At A Glance

  • That's part of the magic of this film - the imaginative action sequences that make you hold your breath, make you even flinch at times, then make you laugh, to release all that tension and edge-of-your-seat involvement. 
image0.jpeg
A scene from 'I, the Executioner

While in Korea, it’s called Veteran 2, Director Ryoo Seung-Wan’s sequel to his 2015 hit action-comedy police film, Veteran, is being called I, the Executioner. 

After taking part in the Cannes Midnight Screening and showing in Toronto, the film opened in South Korea two weeks ago, and it carried the top spot at the box office over those two weekends, amassing more than US$30 million after only six days. 

The Philippines is its next global stop, as it opens here on Sept. 25. I Watched an advanced screening at SM Megamall and can predict great success here, as the audience I watched loved the film, reacting on cue despite the sub-titles.

image1.jpeg
 

Grizzled detective Seo Do-Cheol (Hwang Jung-MIn) and his crack team are back, both hilarious and adept at fighting crime. And that’s been their charm - to be funny, dumb, yet kenkoy-proficient, and effective. 

There’s a recruit in the person of Sun Woo (Jung Hae-In), and this Korean star has a legion of fans, as his first onscreen appearance elicited screams of delight and ‘killing’ exclamations. While innocent-looking and quite young, we immediately know he has some dark secrets. 

Thematically, the film takes on serial killers, the role of social media and true crime nowadays, the phenomenon of copycat murders, school bullying, and vigilante justice. And to the screenplay’s credit, it has much to say on these themes without sounding preachy or simplistic. 

There is a dynamic opening sequence that has to do with a police raid on an illicit casino operation and how, amidst all the arresting and combat, we have the police officers griping about their pay and the cost of their kids’ education. Welcome to the world of Director Ryoo, and his blend of action with comedy. 

image2.jpeg

In the middle portion of the film, there’s a set piece that involves a steep outdoor stairwell, and while the action fans out there will think of the last John Wick, I’ll hand it to Director Ryoo for making this difference. 

That’s part of the magic of this film - the imaginative action sequences that make you hold your breath, make you even flinch at times, then make you laugh, to release all that tension and edge-of-your-seat involvement. 

It’s a proven formula, but watch how effectively it works here and how we are constantly surprised. Plus, the reliance on comedy is super-cool, and the audience I watched thoroughly enjoyed themselves, even if the film was in its original Korean.

I'm happy to report that Director Ryoo Seung-Wan is avoiding the curse of the lame follow up. This sequel stands on it’s own. It may not be as funny as Veteran, with the comedy toned down; but it works precisely by being different enough, and taking us further via the dark, edgier tone. Watch this and enjoy!

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ static_articles_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.