Refactored the weapons a bit, split into 2 components