improved Gun class