I have a problem with the ending
I feel the movie was lacking in that it didn't fully explain how a still level headed john (the guy who walked into the laundry mat) became the fizzle bomber (the guy he killed inside). Obviously, when he walked into the laundry, he was surprised to see an older version of himself as the bomber. The bomber went on to explain that he prevented other crimes from happening but made a monster (himself) in the process. Now, the younger john, was that adamant that he would NEVER become him. But the bomber said if he shoots him, he would become him. why? If he doesn't, he won't. again, why? Knowing the information he had now, confronting the bomber, killing or not killing the bomber should not make any difference going forward except for preventing his further crimes. He would have known already that if he travels in time some more to prevent the crimes mentioned, he would become the fizzle bomber: an information he didn't know before entering the laundry. And with this information, why would he still continue using the time machine? And it is assumed that he did continue, otherwise it would present a conundrum where a bomber version of himself wouldn't exist to tell him of this information. Just like he couldn't have killed himself as an alternate ending because if he killed himself, there wouldn't have been a bomber to reveal these things to him that made him kill himself.
So that's the only major plot hole I see in this movie. The hole would have been removed if somebody else killed the bomber and it was never revealed to him that it was going to be him. But then again, it wouldn't make for a more dramatic ending where he stops the story of himself by killing his oldest version.
Still, it's an excellent film. I enjoy these movies with paradoxes, and this movie has more than one.