Having Joseph Gordon-Levitt play a young Bruce Willis - and then share scenes with him - might seem like a bit of a stretch.
But in director Rian Johnson's time-travel thriller Looper, victims from the future are sent back to be executed by "loopers" - killers hired to do the future underworld's dirty work. Which means that one day the young looper played by Gordon-Levitt must face his senior self, Willis, and kill him.
It's the second genre-bending venture for Johnson and Gordon-Levitt after 2005's Brick, which cleverly melded vintage private eye noir and high school movie.
Since then, Gordon-Levitt's career has exploded, with starring roles in Inception and The Dark Knight Rises. Johnson wrote Looper with his actor friend in mind.
"I wrote the part in order to work with him because we'd stayed really good friends and it's always best to work with your friends," says the director at the Toronto International Film Festival where the movie opened the event. "It's not like I based the part on him - there's nothing of Joe here; this guy's pretty selfish. If anything, I knew it would require a transformation and Joe loves transformation.
"He's one of those guys who has movie star charisma but in his heart is a character actor."
One slight problem though was that Gordon-Levitt, 31, doesn't resemble Willis much. But the director became so excited to win the interest of the actor - who had done the time travel loop before in Terry Gilliam's Twelve Monkeys - he couldn't resist.
"Bruce goes to emotional places and gives incredibly raw performances in all his films," Johnson says. "With Looper I didn't want it to be an impersonation, I thought that would be distracting. I was less concerned with surface things and more concerned with feelings.
"If you hang out with Bruce he's a very quiet guy. He talks low and that's an incredibly powerful thing because you find yourself leaning in closer and engaging with him. You come to him; he doesn't come to you. That's the first thing Joe noticed about him.
"So while Joe soon had Bruce down in the quiet moments, he had to work on when he gets loud as it's harder to imitate him then."
Set in a futuristic gangland in the year 2042, Joseph Simmons, 25, works as a looper for the Kansas mob and kills those sent back from corporate headquarters in 2072. When Joe realises the mob wants to close the loop by transporting back his 55-year-old older self, he must fight for his life. There's also a second vital part to the movie, which involves a solo mother farmer Sara (Emily Blunt) and her young son.
"It made sense for a lot of reasons for the film to start as a sci-fi noir and kind of morph into a sci-fi western, maybe with some horror movie elements thrown in," Johnson explains. "I wanted a really striking contrast between Sara's and Joe's worlds as it comes down to a moral choice between Joe's methods of finding the bad guys and killing them versus Sara's method of raising your kid right."
And what, if anything, does Looper add to the time travel genre?
"All the good time travel movies have one thing in common which is they all find a way of taming time travel to the needs of their stories. Everything from Back To The Future to The Terminator to Twelve Monkeys; they used time travel to varying degrees and in different ways but they all make it subservient to their story and characters. I think that's the trick."
Who: Rian Johnson
When: Opens at cinemas September 27