A Montgomery County man who opened fire on another worshipper in a packed church during Sunday service has been charged with manslaughter.

Mark T. Storms, 46, of Lansdale, Pennsylvania, was charged Thursday with voluntary manslaughter and reckless endangerment in the death of 27-year-old Robert E. Braxton III.

Storms shot Braxton inside Keystone Fellowship Church, a non-denominational church on Stump Road in North Wales, on Sunday morning, prosecutors said. The shooting happened in the church's sanctuary, which was filled with hundreds of worshippers for an 11 a.m. service. Witnesses told NBC10 churchgoers hid under pews as the altercation played out.

Witnesses remember Braxton arriving at church irritated and cursing at an usher in the back of the church, court documents show. Church staff members tried to quiet Braxton, but he refused before heading to a pew that was reserved for two other church members, according to prosecutors.

A church member sitting behind Braxton tapped him on the shoulder to let him know the seats were reserved. Another couple put down two Bibles to save their spots before walking away. Braxton retorted the tap and starting yelling "Don't f------ touch me!" an affidavit reads.

An assistant pastor and ushers came over to try and calm Braxton, but he continued to yell, records show.

In interviews with police, witnesses watched Storms walk over to Braxton, show him a badge and motion to a handgun under his shirt. The badge, police said, was for his concealed carry permit. Braxton exchanged words with Storms before punching him in the jaw. Storms then pulled out his gun and fired two shots, according to witnesses.

What church members remember between Storms showing the badge and the shooting varied.

A female witness told police Braxton said "F--- you and your fake badge, get the f--- out of here" to Storms when he showed off the gold marker.

Another church member, a man, told investigators Storms brandished his gun, to which, Braxton replied, "That's not a real gun."

One person said Braxton lunged at Storms before the shooting. Another recalled hearing Braxton ask Storms "What are you going to do, shoot me?" before punching him, court documents show.

Storms, in an interview with police, said he opened fire on Braxton because he felt his "person was in great danger" and that he was worried other people in the church, including the elderly and children, were going to be hurt.

Storms told police he showed off the concealed carry badge with hopes of defusing the situation. He said, according to court documents, he had done that in the past and that man "walked away."

Following the shooting, Braxton was taken to Abington-Lansdale Hospital where he died. An autopsy showed a bullet hit him in the right side of his chest and right arm.

Kevin Steele, Montgomery County district attorney, said his office decided to file charges after an intensive investigation and interviews with 50 witnesses.

Storms will be arraigned Thursday afternoon. It's not clear if he has retained an attorney.