diff --git a/OpenRA.Mods.RA/Activities/Teleport.cs b/OpenRA.Mods.RA/Activities/Teleport.cs
index 071e320afe..7dde377224 100755
--- a/OpenRA.Mods.RA/Activities/Teleport.cs
+++ b/OpenRA.Mods.RA/Activities/Teleport.cs
@@ -12,6 +12,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using OpenRA.Mods.RA.Render;
+using OpenRA.Mods.RA.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Activities
diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
index a1c32dfc36..7f7435aebe 100644
--- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
+++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
@@ -164,8 +164,8 @@
-
-
+
+
@@ -179,7 +179,7 @@
-
+
@@ -198,7 +198,7 @@
-
+
@@ -216,7 +216,7 @@
-
+
@@ -254,8 +254,8 @@
-
-
+
+
diff --git a/OpenRA.Mods.RA/Scripting/Properties/ChronosphereProperties.cs b/OpenRA.Mods.RA/Scripting/Properties/ChronosphereProperties.cs
index 66b46aa92e..cd8ac0831d 100644
--- a/OpenRA.Mods.RA/Scripting/Properties/ChronosphereProperties.cs
+++ b/OpenRA.Mods.RA/Scripting/Properties/ChronosphereProperties.cs
@@ -9,6 +9,7 @@
#endregion
using Eluant;
+using OpenRA.Mods.RA.Traits;
using OpenRA.Scripting;
using OpenRA.Traits;
diff --git a/OpenRA.Mods.RA/Chronoshiftable.cs b/OpenRA.Mods.RA/Traits/Chronoshiftable.cs
old mode 100755
new mode 100644
similarity index 99%
rename from OpenRA.Mods.RA/Chronoshiftable.cs
rename to OpenRA.Mods.RA/Traits/Chronoshiftable.cs
index 42df972a36..a796d79ea8
--- a/OpenRA.Mods.RA/Chronoshiftable.cs
+++ b/OpenRA.Mods.RA/Traits/Chronoshiftable.cs
@@ -12,7 +12,7 @@ using System.Drawing;
using OpenRA.Mods.RA.Activities;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
[Desc("Can be teleported via Chronoshift power.")]
public class ChronoshiftableInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/DemoTruck.cs b/OpenRA.Mods.RA/Traits/DemoTruck.cs
similarity index 98%
rename from OpenRA.Mods.RA/DemoTruck.cs
rename to OpenRA.Mods.RA/Traits/DemoTruck.cs
index f2f25ec2b7..c5c64a1009 100644
--- a/OpenRA.Mods.RA/DemoTruck.cs
+++ b/OpenRA.Mods.RA/Traits/DemoTruck.cs
@@ -16,7 +16,7 @@ using OpenRA.Mods.RA.Activities;
using OpenRA.Mods.RA.Orders;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
class DemoTruckInfo : TraitInfo, Requires { }
diff --git a/OpenRA.Mods.RA/MadTank.cs b/OpenRA.Mods.RA/Traits/MadTank.cs
similarity index 99%
rename from OpenRA.Mods.RA/MadTank.cs
rename to OpenRA.Mods.RA/Traits/MadTank.cs
index bca6f44671..e2a4b601e9 100644
--- a/OpenRA.Mods.RA/MadTank.cs
+++ b/OpenRA.Mods.RA/Traits/MadTank.cs
@@ -19,7 +19,7 @@ using OpenRA.Mods.RA.Move;
using OpenRA.Traits;
using OpenRA.Primitives;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
class MadTankInfo : ITraitInfo, Requires, Requires
{
diff --git a/OpenRA.Mods.RA/ChronoshiftPaletteEffect.cs b/OpenRA.Mods.RA/Traits/PaletteEffects/ChronoshiftPaletteEffect.cs
similarity index 97%
rename from OpenRA.Mods.RA/ChronoshiftPaletteEffect.cs
rename to OpenRA.Mods.RA/Traits/PaletteEffects/ChronoshiftPaletteEffect.cs
index 4a49cb52b5..4e1e785c74 100644
--- a/OpenRA.Mods.RA/ChronoshiftPaletteEffect.cs
+++ b/OpenRA.Mods.RA/Traits/PaletteEffects/ChronoshiftPaletteEffect.cs
@@ -13,7 +13,7 @@ using System.Drawing;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
[Desc("Apply palette full screen rotations during chronoshifts. Add this to the world actor.")]
class ChronoshiftPaletteEffectInfo : TraitInfo { }
diff --git a/OpenRA.Mods.RA/PortableChrono.cs b/OpenRA.Mods.RA/Traits/PortableChrono.cs
similarity index 99%
rename from OpenRA.Mods.RA/PortableChrono.cs
rename to OpenRA.Mods.RA/Traits/PortableChrono.cs
index 92438fb2c6..949ade55e1 100644
--- a/OpenRA.Mods.RA/PortableChrono.cs
+++ b/OpenRA.Mods.RA/Traits/PortableChrono.cs
@@ -10,13 +10,13 @@
using System.Drawing;
using System.Collections.Generic;
-using OpenRA.Traits;
using OpenRA.Graphics;
-using OpenRA.Mods.RA.Activities;
-using OpenRA.Mods.Common.Orders;
using OpenRA.Mods.Common.Graphics;
+using OpenRA.Mods.Common.Orders;
+using OpenRA.Mods.RA.Activities;
+using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
class PortableChronoInfo : ITraitInfo
{
diff --git a/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs b/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs
similarity index 99%
rename from OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs
rename to OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs
index 340600752c..4f2ee9f45d 100644
--- a/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs
+++ b/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs
@@ -14,7 +14,7 @@ using System.Linq;
using OpenRA.Graphics;
using OpenRA.Mods.RA.Activities;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
class ChronoshiftPowerInfo : SupportPowerInfo
{
diff --git a/OpenRA.Mods.RA/SupportPowers/GpsPower.cs b/OpenRA.Mods.RA/Traits/SupportPowers/GpsPower.cs
old mode 100755
new mode 100644
similarity index 99%
rename from OpenRA.Mods.RA/SupportPowers/GpsPower.cs
rename to OpenRA.Mods.RA/Traits/SupportPowers/GpsPower.cs
index 99153d7157..e67bfec052
--- a/OpenRA.Mods.RA/SupportPowers/GpsPower.cs
+++ b/OpenRA.Mods.RA/Traits/SupportPowers/GpsPower.cs
@@ -14,7 +14,7 @@ using OpenRA.Effects;
using OpenRA.Mods.RA.Effects;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.RA.Traits
{
[Desc("Required for GpsPower. Attach this to the player actor.")]
class GpsWatcherInfo : ITraitInfo