implemented gun as simple FSM #167