There is simply no excuse for what happened in Montana last night.

Prior to a campaign rally held by Republican Congressional candidate Greg Gianforte for today’s special election, Gianforte allegedly roughed up Guardian political reporter, Ben Jacobs.

Immediately after the incident, Jacobs tweeted:

Gianforte’s camp immediately blamed Jacobs for starting the altercation, saying Jacobs was asked repeatedly to lower his recorder but refused:

Jacobs captured audio of the altercation on his phone, which he’d set to record for his interview with Gianforte. The audio corroborates Jacob’s account and contradicts that of the Gianforte campaign statement:

According to eyewitnesses, Gianforte grabbed Jacobs by the neck, threw him to the ground, and began punching him. Jacobs remained remarkably calm through it all. Witnesses also said Jacobs was not physically aggressive with Gianforte.

A Fox News crew was in the room with Gianforte and Jacobs and published their account:

During that conversation, another man — who we now know is Ben Jacobs of The Guardian — walked into the room with a voice recorder, put it up to Gianforte’s face and began asking if he had a response to the newly released Congressional Budget Office report on the American Health Care Act. Gianforte told him he would get to him later. Jacobs persisted with his question. Gianforte told him to talk to his press guy, Shane Scanlon.

At that point, Gianforte grabbed Jacobs by the neck with both hands and slammed him into the ground behind him. Faith, Keith and I watched in disbelief as Gianforte then began punching the reporter. As Gianforte moved on top of Jacobs, he began yelling something to the effect of, “I’m sick and tired of this!”

Jacobs scrambled to his knees and said something about his glasses being broken. He asked Faith, Keith and myself for our names. In shock, we did not answer. Jacobs then said he wanted the police called and went to leave. Gianforte looked at the three of us and repeatedly apologized. At that point, I told him and Scanlon, who was now present, that we needed a moment. The men then left.

To be clear, at no point did any of us who witnessed this assault see Jacobs show any form of physical aggression toward Gianforte, who left the area after giving statements to local sheriff’s deputies.

And then spoke to what happened:

Gianforte was charged with misdemeanor assault, but not arrested.

Montana’s three largest newspapers rescinded their endorsements of Gianforte.

Before he lost his mind, Gianforte was up fourteen points. By most accounts, some 70% of Montana has already voted, so the impact this incident will have on today’s election will likely be minimal, unfortunately. Gianforte just made himself a bigger liability than the GOP needs right now, especially ahead of another hot special election in Georgia. Looking at the lasting implications of Gianforte’s alleged assault, everyone would be better off politically if he were to lose the special election. If he wins, the GOP is stuck with a physically violent Representative and a new narrative of violence, which CNN is already peddling. As I understand it, a misdemeanor is not severe enough to cost Gianforte his seat, should he win tonight.

Political ramifications aside, Gianforte’s actions are wholly unacceptable and indefensible.

There are far too many instances of late where reporters insist on making themselves the story, but that’s not what happened here. Jacobs was doing his job and by all accounts, certainly not baiting anyone for a violent encounter. Further, claims that Jacobs is a “hack” or a leftist, or somehow deserving otherwise are sad and disappointingly feeble. I know Jacobs to be perfectly decent human being. But even if he weren’t, assaulting someone for asking a question extralegal, super douchey, and I’ll reiterate — indefensible.

It is not possible to serve as a federal politician and be free from political reporters. If answering questions from a reporter is too much for Gianforte’s temperament to handle, perhaps he should find another profession.

Follow Kemberlee on Twitter @kemberleekaye