#4 changed add_shot to remove possible side effects