gun shot functionality rewritten