diff --git a/OpenRA.Mods.RA/Activities/LayMines.cs b/OpenRA.Mods.RA/Activities/LayMines.cs
index 431321a9af..a50eb6072f 100644
--- a/OpenRA.Mods.RA/Activities/LayMines.cs
+++ b/OpenRA.Mods.RA/Activities/LayMines.cs
@@ -10,6 +10,7 @@
using System.Linq;
using OpenRA.Activities;
+using OpenRA.Mods.RA.Traits;
using OpenRA.Primitives;
using OpenRA.Traits;
diff --git a/OpenRA.Mods.RA/Effects/TeslaZap.cs b/OpenRA.Mods.RA/Effects/TeslaZap.cs
index 21ac24398a..9c01f42b4b 100644
--- a/OpenRA.Mods.RA/Effects/TeslaZap.cs
+++ b/OpenRA.Mods.RA/Effects/TeslaZap.cs
@@ -12,6 +12,7 @@ using System.Collections.Generic;
using OpenRA.Effects;
using OpenRA.GameRules;
using OpenRA.Graphics;
+using OpenRA.Mods.RA.Graphics;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Effects
diff --git a/OpenRA.Mods.RA/TeslaZapRenderable.cs b/OpenRA.Mods.RA/Graphics/TeslaZapRenderable.cs
old mode 100755
new mode 100644
similarity index 99%
rename from OpenRA.Mods.RA/TeslaZapRenderable.cs
rename to OpenRA.Mods.RA/Graphics/TeslaZapRenderable.cs
index b3ac8bf6bf..bf38515a97
--- a/OpenRA.Mods.RA/TeslaZapRenderable.cs
+++ b/OpenRA.Mods.RA/Graphics/TeslaZapRenderable.cs
@@ -13,7 +13,7 @@ using System.Collections.Generic;
using System.Linq;
using OpenRA.Graphics;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Graphics
{
struct TeslaZapRenderable : IRenderable
{
diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
index 7f7435aebe..a3e68e5b97 100644
--- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
+++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
@@ -97,7 +97,7 @@
-
+
@@ -133,7 +133,7 @@
-
+
@@ -199,8 +199,8 @@
-
-
+
+
@@ -252,7 +252,7 @@
-
+
diff --git a/OpenRA.Mods.RA/AcceptsSupplies.cs b/OpenRA.Mods.RA/Traits/AcceptsSupplies.cs
similarity index 94%
rename from OpenRA.Mods.RA/AcceptsSupplies.cs
rename to OpenRA.Mods.RA/Traits/AcceptsSupplies.cs
index 0a0d04c1eb..d682fbe30b 100644
--- a/OpenRA.Mods.RA/AcceptsSupplies.cs
+++ b/OpenRA.Mods.RA/Traits/AcceptsSupplies.cs
@@ -10,7 +10,7 @@
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
[Desc("Tag trait for SupplyTruck: actors.")]
class AcceptsSuppliesInfo : TraitInfo {}
diff --git a/OpenRA.Mods.RA/Mine.cs b/OpenRA.Mods.RA/Traits/Mine.cs
similarity index 97%
rename from OpenRA.Mods.RA/Mine.cs
rename to OpenRA.Mods.RA/Traits/Mine.cs
index 49cc093dac..e49203f1d1 100644
--- a/OpenRA.Mods.RA/Mine.cs
+++ b/OpenRA.Mods.RA/Traits/Mine.cs
@@ -12,7 +12,7 @@ using System.Linq;
using OpenRA.Mods.RA.Move;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
class MineInfo : ITraitInfo, IOccupySpaceInfo
{
diff --git a/OpenRA.Mods.RA/Minelayer.cs b/OpenRA.Mods.RA/Traits/Minelayer.cs
similarity index 99%
rename from OpenRA.Mods.RA/Minelayer.cs
rename to OpenRA.Mods.RA/Traits/Minelayer.cs
index 3bec38b2c7..525d6e51ba 100644
--- a/OpenRA.Mods.RA/Minelayer.cs
+++ b/OpenRA.Mods.RA/Traits/Minelayer.cs
@@ -11,12 +11,12 @@
using System;
using System.Linq;
using System.Collections.Generic;
-using OpenRA.Traits;
using OpenRA.Graphics;
-using OpenRA.Mods.RA.Activities;
using OpenRA.Mods.Common.Orders;
+using OpenRA.Mods.RA.Activities;
+using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
class MinelayerInfo : ITraitInfo
{
diff --git a/OpenRA.Mods.RA/SupplyTruck.cs b/OpenRA.Mods.RA/Traits/SupplyTruck.cs
similarity index 98%
rename from OpenRA.Mods.RA/SupplyTruck.cs
rename to OpenRA.Mods.RA/Traits/SupplyTruck.cs
index e9bbccadce..5f77dd156e 100644
--- a/OpenRA.Mods.RA/SupplyTruck.cs
+++ b/OpenRA.Mods.RA/Traits/SupplyTruck.cs
@@ -14,7 +14,7 @@ using OpenRA.Mods.Common.Orders;
using OpenRA.Mods.RA.Activities;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
[Desc("Donate money to building if it has the AcceptSupplies: trait.")]
class SupplyTruckInfo : ITraitInfo