Michael Phelps was back in familiar waters and on top of the winner's podium in his comeback to competitive swimming at the U.S. Grand Prix in Charlotte on Friday.
Competing for just the second time since retiring after the 2012 London Olympics, Phelps ticked off all the important boxes he needed to.
In the morning heats, he tested his stamina by entering two lung-sapping events - the 200 metres freestyle and 100m butterfly - then in the evening finals, he tested his speed by winning the 100m butterfly final.
He also qualified for the 200m freestyle final but scratched from the race after achieving his goal in the heats - qualifying for this year's U.S. national championships, which double as the selection event for next year's world titles in Russia.
His time in the 200m free was one minute 51.69 seconds, way below his best, but 0.2 seconds inside the U.S. qualifying time.
His best times from previous years don't count for future meetings because they happened outside the qualifying window but Phelps has now qualified for the nationals in the 100m butterfly and 200m freestyle.
Both Phelps and his long-time coach Bob Bowman have been coy about their future plans but Bowman was pleased by what he saw on Friday.
"I thought Michael's 200 free was actually pretty good for the first one in a couple of years," Bowman told reporters.
"Now we have a real picture of where he is at. I think he could definitely do better."
Phelps is unlikely to swim the more gruelling 200m freestyle in individual events but he needs to enter it at the national titles if he wants a place on the 4x200m relay team.
"I thought technically he was pretty good," said Bowman.
"He was much better than he's been in training so far so he's definitely improving in that stroke and I think as he goes along that will get a lot better."
The 100m butterfly is one of two individual events that Phelps won at three successive Olympics. And if he qualifies for the event at the 2016 Rio Olympics, he will automatically make the U.S. men's medley relay, which has never been beaten at the Olympics.
Phelps finished a close second in the 100m butterfly to his great rival Ryan Lochte at his comeback in suburban Phoenix last month but touched the wall first on Friday.
Lochte was not in the race, watching from the stands as he recovers from a knee injury, allowing Phelps to coast to victory.
His 52.13 seconds was slightly below his best time in Phoenix but enough to register his first win since he retired and send an ominous warning to his rivals that he is back and means business.
Will Shane Cameron beat Kali Meehan on Saturday?