Justin Trudeau's speech to the Liberal Convention a rehearsal for 2019 election

Trudeau didn't apologize for any mistakes on Saturday, but he has tweaked his tone from crowd-pleasing in 2015 to crowd-appeasing now.

“There are those who say our movement is about image and not policy,” Prime Minister Justin Trudeau told his party on Saturday. “Well, tell that to the 300,000 kids who were living in poverty three years ago, who aren’t now,” he said. “Try to tell that to the millions of working Canadians who now have a stronger Canada Pension Plan … Try telling that to the families whose loved ones would be suffering through needless and excruciating pain in terminal illness, who now have the choice to die with dignity in the care of a doctor.”

On his 900th day as Prime Minister, Trudeau addressed the federal Liberal Party’s largest ever policy convention, held in Halifax, where he talked members through the highlight reel of his mandate. The speech comes at a moment of third-quarter quandary, as the Trans Mountain pipeline project divides the party in the west and ministerial controversies this fall have disappointed the rest. Although low poll numbers can at times indicate courageous policy changes, the Liberal’s decline in public approval in March appeared to result from the leader’s embarrassing five days in India. Trudeau didn’t apologize for any mistakes on Saturday, but he has tweaked his tone from crowd-pleasing in 2015 to crowd-appeasing now.

RELATED: Justin Trudeau tells convention the Conservatives are still “Harper’s party”: speech transcript

“I’m not perfect,” he said. “Sophie’s been telling me that for 15 years. And of course, neither is any other government. We all have miles to go before we sleep.”

Time flies when you’re having free trade fights, responding to refugee crises, terrorist attacks and wildfires, and Trudeau dwelled on his legacies from each of his three years, including Syrian immigration and an infrastructure plan, not mentioning not-quite-delivered promises like marijuana legislation. While he once told the world that Canada was back, his speech Saturday told Canada his party is here to stay.

“I am looking forward to the 2019 campaign because I can’t wait to put our plan, our team, and our vision of Canada up against theirs. In fact, I’m looking forward to it because I don’t think the Conservative Party learned anything from its last campaign.”

The speech rang of rehearsal for election rallies, as he hammered Andrew Scheer as the self-proclaimed Stephen Harper-with-a-smile. “It wasn’t Stephen Harper’s frown that created the worst growth record since the Great Depression,” Trudeau said. “It wasn’t his demeanour that cut veterans’ pensions and closed their service centres. It wasn’t his mood that failed to either get a pipeline built or to act on climate change. No, my friends, Stephen Harper’s personal disposition didn’t fail Canada. His policies did.”

The Prime Minister’s been practicing his public speaking at venues the likes of the United Nations General Assembly and, last week, the French National Assembly. He sounded more fluent and removed from the canvassing ground than he did during 2015 rallies—when he was telling members to ensure neighbours vote by driving them to the polls or babysitting their kids—but in the taxonomy of talks, he remained in the same buoyant class.

“Positive politics means you fight for your ideas. You don’t demonize your opponents,” he said on Saturday, alluding to President Donald Trump only in the words, “successful campaigns elsewhere in the world to divide people against one another.”

Trudeau said a government should stick up for every single Canadian. He said he loves this country down to his bones.