created weaponPart super class
refactor to use weaponPart