I'm wondering how the upgrade system would work, perhaps some sort of individual experience bar for each weapon and as it fills up you can distribute those points between certain categories (Damage, Accuracy, Efficiency, Etc.)? Or maybe as each weapon levels up, you unlock modifiers you can place on the weapons that alter how it works and how it upgrades, so as you use a chaingun more, you can unlock something like 'Heated delivery' that gives off fire damage, but as you use the weapon more with that upgrade, the unlock will eventually become permanently attached to the weapon, making it now a flaming chaingun with no chance to go back, but giving you, say, three more unlocks, one makes the fire damage increase, another causes an AOE of flame damage when firing, and another causes the total damage to ramp up the longer you fire.