Abstracted Weapon to make them interchangable