diff --git a/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj b/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj
index ccab2ed6e6..ed6428e559 100644
--- a/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj
+++ b/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj
@@ -70,18 +70,18 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
diff --git a/OpenRA.Mods.Cnc/ProductionAirdrop.cs b/OpenRA.Mods.Cnc/Traits/Buildings/ProductionAirdrop.cs
similarity index 98%
rename from OpenRA.Mods.Cnc/ProductionAirdrop.cs
rename to OpenRA.Mods.Cnc/Traits/Buildings/ProductionAirdrop.cs
index c72b0e2205..a8fab53a65 100644
--- a/OpenRA.Mods.Cnc/ProductionAirdrop.cs
+++ b/OpenRA.Mods.Cnc/Traits/Buildings/ProductionAirdrop.cs
@@ -15,7 +15,7 @@ using OpenRA.Mods.RA.Air;
using OpenRA.Primitives;
using OpenRA.Traits;
-namespace OpenRA.Mods.Cnc
+namespace OpenRA.Mods.Cnc.Traits
{
[Desc("Deliver the unit in production via skylift.")]
public class ProductionAirdropInfo : ProductionInfo
diff --git a/OpenRA.Mods.Cnc/TiberiumRefinery.cs b/OpenRA.Mods.Cnc/Traits/Buildings/TiberiumRefinery.cs
similarity index 96%
rename from OpenRA.Mods.Cnc/TiberiumRefinery.cs
rename to OpenRA.Mods.Cnc/Traits/Buildings/TiberiumRefinery.cs
index e20b69d410..bb8c982c57 100644
--- a/OpenRA.Mods.Cnc/TiberiumRefinery.cs
+++ b/OpenRA.Mods.Cnc/Traits/Buildings/TiberiumRefinery.cs
@@ -11,7 +11,7 @@
using OpenRA.Mods.RA;
using OpenRA.Traits;
-namespace OpenRA.Mods.Cnc
+namespace OpenRA.Mods.Cnc.Traits
{
public class TiberiumRefineryInfo : OreRefineryInfo
{
diff --git a/OpenRA.Mods.Cnc/PoisonedByTiberium.cs b/OpenRA.Mods.Cnc/Traits/PoisonedByTiberium.cs
similarity index 97%
rename from OpenRA.Mods.Cnc/PoisonedByTiberium.cs
rename to OpenRA.Mods.Cnc/Traits/PoisonedByTiberium.cs
index 1925498054..84c32b65f6 100644
--- a/OpenRA.Mods.Cnc/PoisonedByTiberium.cs
+++ b/OpenRA.Mods.Cnc/Traits/PoisonedByTiberium.cs
@@ -13,7 +13,7 @@ using OpenRA.Traits;
using OpenRA.Mods.RA;
using OpenRA.GameRules;
-namespace OpenRA.Mods.Cnc
+namespace OpenRA.Mods.Cnc.Traits
{
class PoisonedByTiberiumInfo : ITraitInfo
{
diff --git a/OpenRA.Mods.Cnc/Render/RenderGunboat.cs b/OpenRA.Mods.Cnc/Traits/Render/RenderGunboat.cs
similarity index 100%
rename from OpenRA.Mods.Cnc/Render/RenderGunboat.cs
rename to OpenRA.Mods.Cnc/Traits/Render/RenderGunboat.cs
diff --git a/OpenRA.Mods.Cnc/Render/WithCargo.cs b/OpenRA.Mods.Cnc/Traits/Render/WithCargo.cs
similarity index 98%
rename from OpenRA.Mods.Cnc/Render/WithCargo.cs
rename to OpenRA.Mods.Cnc/Traits/Render/WithCargo.cs
index 1604b517f3..548b01b750 100644
--- a/OpenRA.Mods.Cnc/Render/WithCargo.cs
+++ b/OpenRA.Mods.Cnc/Traits/Render/WithCargo.cs
@@ -15,7 +15,7 @@ using OpenRA.Graphics;
using OpenRA.Mods.RA;
using OpenRA.Traits;
-namespace OpenRA.Mods.Cnc
+namespace OpenRA.Mods.Cnc.Traits
{
[Desc("Renders the cargo loaded into the unit.")]
public class WithCargoInfo : ITraitInfo, Requires, Requires
diff --git a/OpenRA.Mods.Cnc/Render/WithDeliveryAnimation.cs b/OpenRA.Mods.Cnc/Traits/Render/WithDeliveryAnimation.cs
similarity index 100%
rename from OpenRA.Mods.Cnc/Render/WithDeliveryAnimation.cs
rename to OpenRA.Mods.Cnc/Traits/Render/WithDeliveryAnimation.cs
diff --git a/OpenRA.Mods.Cnc/Render/WithFire.cs b/OpenRA.Mods.Cnc/Traits/Render/WithFire.cs
similarity index 97%
rename from OpenRA.Mods.Cnc/Render/WithFire.cs
rename to OpenRA.Mods.Cnc/Traits/Render/WithFire.cs
index 9c97d9526e..2bb049a80f 100644
--- a/OpenRA.Mods.Cnc/Render/WithFire.cs
+++ b/OpenRA.Mods.Cnc/Traits/Render/WithFire.cs
@@ -12,7 +12,7 @@ using OpenRA.Graphics;
using OpenRA.Mods.Common.Traits.Render;
using OpenRA.Traits;
-namespace OpenRA.Mods.Cnc
+namespace OpenRA.Mods.Cnc.Traits
{
[Desc("Renders a flame sprite on top of the actor.")]
class WithFireInfo : ITraitInfo, Requires
diff --git a/OpenRA.Mods.Cnc/Render/WithRoof.cs b/OpenRA.Mods.Cnc/Traits/Render/WithRoof.cs
similarity index 96%
rename from OpenRA.Mods.Cnc/Render/WithRoof.cs
rename to OpenRA.Mods.Cnc/Traits/Render/WithRoof.cs
index 134d79016d..672e1bc317 100644
--- a/OpenRA.Mods.Cnc/Render/WithRoof.cs
+++ b/OpenRA.Mods.Cnc/Traits/Render/WithRoof.cs
@@ -12,7 +12,7 @@ using OpenRA.Graphics;
using OpenRA.Mods.Common.Traits.Render;
using OpenRA.Traits;
-namespace OpenRA.Mods.Cnc
+namespace OpenRA.Mods.Cnc.Traits
{
[Desc("Provides an overlay for the Tiberian Dawn hover craft.")]
public class WithRoofInfo : ITraitInfo, Requires
diff --git a/OpenRA.Mods.Cnc/SpawnViceroid.cs b/OpenRA.Mods.Cnc/Traits/SpawnViceroid.cs
similarity index 97%
rename from OpenRA.Mods.Cnc/SpawnViceroid.cs
rename to OpenRA.Mods.Cnc/Traits/SpawnViceroid.cs
index eef1e03700..3c2e252c6a 100644
--- a/OpenRA.Mods.Cnc/SpawnViceroid.cs
+++ b/OpenRA.Mods.Cnc/Traits/SpawnViceroid.cs
@@ -12,7 +12,7 @@ using System.Linq;
using OpenRA.Primitives;
using OpenRA.Traits;
-namespace OpenRA.Mods.Cnc
+namespace OpenRA.Mods.Cnc.Traits
{
class SpawnViceroidInfo : ITraitInfo
{
diff --git a/OpenRA.Mods.Cnc/IonCannonPower.cs b/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs
similarity index 98%
rename from OpenRA.Mods.Cnc/IonCannonPower.cs
rename to OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs
index 99da3beead..678c1037a7 100644
--- a/OpenRA.Mods.Cnc/IonCannonPower.cs
+++ b/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs
@@ -14,7 +14,7 @@ using OpenRA.Mods.RA.Activities;
using OpenRA.Primitives;
using OpenRA.Traits;
-namespace OpenRA.Mods.Cnc
+namespace OpenRA.Mods.Cnc.Traits
{
class IonCannonPowerInfo : SupportPowerInfo
{