Massive refactoring of ShipComponent(s)