After two games of the season, not many would have predicted our eventual United Rugby Championship semi-finalists.
Almost everyone would have anticipated Leinster's route to the last four, while Ulster's place in the semi-finals was also closer to expectation than hope. But after the way all four South African franchises started the inaugural URC, the chances of them having a team - let alone two - competing for the title would have seemed laughable.
But here we are in June in the final weeks of the season, and it's two Irish and two South African sides still standing. On one side of the play-off bracket are Leinster and the Bulls, while the other semi sees the Stormers take on Ulster, the home sides winning each occasion when the sides met earlier this season.
For Ulster, it's a quick return to Cape Town having been there in March when they lost in controversial circumstances to the Stormers, Callum Reid's apparent match-winning try disallowed incorrectly by the TMO. Had it been allowed to stand, it's likely Ulster would now be hosting the South Africans this weekend, rather than the other way around.
There was no such controversy when Leinster and the Bulls met in Round 1 at the Aviva Stadium, with the defending champions comfortably holding the Bulls at arm's length as they ran out easy 31-3 winners, before the South Africans shipped a 34-7 hiding against Connacht a week later.
Next week's final will be played at the home of the highest seed to get through to the decider, with Leinster knowing they'll be back at the RDS if they come through their game against the Bulls.
Stormers v Ulster is live on RTÉ2 and RTÉ Player from 1.45pm on Saturday, while Leinster v Bulls will be shown on TG4 at 7.35pm on Friday.
Listen to live commentary from Leinster v Bulls on RTÉ Radio 1 Extra and updates from Stormers v Ulster on Saturday Sport on RTÉ Radio 1.
RTE.ie/sport will have live scoring and blogs across the weekend with match reports and reaction from the grounds. All games are live on URC TV.
Conditions will be unsettled tomorrow in Dublin, but it looks like the heaviest showers will have cleared by the 7.35pm kickoff, with temperatures around 16-18C. Ulster will have to deal with some hot weather in Cape Town, although the 23C will be slightly more manageable than the 30C temperatures they had to deal with on their last visit in March.
It's fair to say Leinster learned nothing from last week's win against the Glasgow Warriors, as they ran in 12 tries - eight of which were in the second half - for a result that would lead to Warriors boss Danny Wilson being fired.
But while they weren't tested beyond the opening quarter of the game, the win will have been enough to shake off any lingering hangover from the Champions Cup final defeat to La Rochelle.
Leo Cullen's side are built for this part of the season though, and their only defeat on 11 previous semi-finals in this competition was five years ago when they were stunned at the RDS by eventual champions Scarlets.
The Bulls were easily beaten in their two games in Ireland this season, although Jake White's side have moved into a different gear since Christmas. While they haven't changed much in terms of personnel, they've reeled off nine wins in their last ten games, beating Munster and Ulster along the way.
There isn't too much mystery to the Pretoria side, who play a forward-oriented game, with a hugely powerful back row of Marcell Coetzee, Arno Botha and Elrigh Louw, which they use to commit defenders before getting their outside backs like Madosh Tambwe and Cornal Hendricks into space.
For Leinster, it's a case of keeping the Bulls moving and playing with a high amount of ball-in-play time, to tire out the tourists. If they can do that, they'll limit the influence of the Bulls' power, a major step along the way to winning.
Leinster: Jimmy O'Brien; Jordan Larmour, Garry Ringrose, Robbie Henshaw, Rory O’Loughlin; Ross Byrne, Jamison Gibson-Park; Andrew Porter, Dan Sheehan, Tadhg Furlong; Joe McCarthy, James Ryan (c), Caelan Doris, Josh van der Flier, Jack Conan.
Replacements: Seán Cronin, Cian Healy, Michael Ala’alatoa, Ross Molony, Ryan Baird, Luke McGrath, Johnny Sexton, Ciarán Frawley.
Vodacom Bulls: Canan Moodie; David Kriel, Cornal Hendricks, Harold Vorster, Madosh Tambwe; Chris Smith, Zak Burger; Gerhard Steenekamp, Johan Grobbelaar, Mornay Smith; Walt Steenkamp, Ruan Nortje; Marcell Coetzee (c), Arno Botha, Elrigh Louw.
Replacements: Bismarck du Plessis, Simphiwe Matanzima, Robert Hunt, Janko Swanepoel, WJ Steenkamp; Embrose Papier, Morne Steyn, Kurt-Lee Arendse.
Referee: Andrea Piardi (FIR)
A look through the URC Dream Team for this season would tell you all you need to know about the way the Stormers play. Of the five Stormers selected to the team, four are backs, a clear indication of how John Dobson's side like to use the ball.
The Western Province are lethal when given space to play, with wingers Leolin Zas and Seabelo Senatla combining for 20 tries between them this season. Behind that pair, full-back Warrick Gelant has shown himself to be one of the league's most exciting broken-field runners and looks likely to add to his Test caps this summer.
They're also able to handle the close-quarter work though, and 22-year-old No 8 Evan Roos has been one of the league's best players this season, with many saying the 'Next Gen Star of the Season' is the Springboks' long-term replacement for Duane Vermeulen, who he packs down against this weekend.
Just one defeat from their final 13 games saw the Stormers march all the way to second in the table, and while they've won nine of their ten games at home this season, Ulster will have no fear of the Cape Town Stadium, having been denied a legitimate match-winning try when the sides met their in March.
Damian Willemse was a surprise inclusion in the starting line-up for Saturday semi-final. The Springbok was expected to be sidelined for up to eight weeks after suffering an arm injury in the final league match against the Scarlets last month, but he has been passed fit to start at inside centre.
"Damian is another phenomenal player and credit must go to him and the medical staff for getting him ready for this game," said Dobson. "He is a world-class performer who would make a difference to any team."
Ulster know how to beat the Stormers and even with Willemse back in the midfield, expect Dan McFarland's side to target the centre channels, just as they did last week against Munster when James Hume and Stuart McCloskey were sublime.
The Irish province looked to be falling apart after their European campaign ended, following it with a flat performance against Muster.
However, in recent weeks they look to have found their spark again, grinding out wins against Edinburgh and the Sharks to get a home quarter-final, before flexing their muscles in an emphatic win against Munster last week.
Stormers: Warrick Gelant; Seabelo Senatla, Ruhan Nel, Damian Willemse, Leolin Zas; Manie Libbok, Herschel Jantjies; Steven Kitshoff (c), JJ Kotze, Frans Malherbe; Salmaan Moerat, Marvin Orie; Deon Fourie, Hacjivah Dayimani, Evan Roos.
Replacements: Andre-Hugo Venter, Brok Harris, Neethling Fouche, Adre Smith, Ernst van Rhyn, Nama Xaba, Godlen Masimla, Sacha Mngomezulu.
Ulster: Stewart Moore; Rob Baloucoune, James Hume, Stuart McCloskey, Ethan McIlroy; Billy Burns, John Cooney; Andrew Warwick, Rob Herring, Tom O'Toole; Alan O'Connor, Iain Henderson (capt); Marcus Rea, Nick Timoney, Duane Vermeulen.
Replacements: John Andrew, Eric O'Sullivan, Gareth Milasinovich, Kieran Treadwell, Matty Rea, Nathan Doak, Ian Madigan, Ben Moxham.
Referee: Mike Adamson (SRU)