diff --git a/src/main/scala/leon/Main.scala b/src/main/scala/leon/Main.scala
index 98d9778b8c3411d574469bf807518b40179030a1..e27586acc7ed9353e0f5578faf8df6b3ef449c29 100644
--- a/src/main/scala/leon/Main.scala
+++ b/src/main/scala/leon/Main.scala
@@ -5,12 +5,10 @@ object Main {
   def allPhases: List[LeonPhase[_, _]] = {
     List(
       plugin.ExtractionPhase,
-      ArrayTransformation,
-      EpsilonElimination,
-      ImperativeCodeElimination,
-      /*UnitElimination,*/
-      FunctionClosure,
-      /*FunctionHoisting,*/
+      xlang.ArrayTransformation,
+      xlang.EpsilonElimination,
+      xlang.ImperativeCodeElimination,
+      xlang.FunctionClosure,
       Simplificator,
       synthesis.SynthesisPhase,
       verification.AnalysisPhase
@@ -124,10 +122,10 @@ object Main {
 
     val pipeTransforms: Pipeline[Program, Program] =
       if (settings.xlang) {
-        ArrayTransformation andThen
-        EpsilonElimination andThen
-        ImperativeCodeElimination andThen
-        FunctionClosure
+        xlang.ArrayTransformation andThen
+        xlang.EpsilonElimination andThen
+        xlang.ImperativeCodeElimination andThen
+        xlang.FunctionClosure
       } else {
         NoopPhase()
       }
diff --git a/src/main/scala/leon/ArrayTransformation.scala b/src/main/scala/leon/xlang/ArrayTransformation.scala
similarity index 97%
rename from src/main/scala/leon/ArrayTransformation.scala
rename to src/main/scala/leon/xlang/ArrayTransformation.scala
index fd46f449b1504e4082c97bfcf5267831381dc760..bb8832d62103bdfbc41e026cdf281aa34e98e5f1 100644
--- a/src/main/scala/leon/ArrayTransformation.scala
+++ b/src/main/scala/leon/xlang/ArrayTransformation.scala
@@ -1,10 +1,12 @@
-package leon
+package leon.xlang
 
-import purescala.Common._
-import purescala.Definitions._
-import purescala.Trees._
-import purescala.Extractors._
-import purescala.TypeTrees._
+import leon.TransformationPhase
+import leon.LeonContext
+import leon.purescala.Common._
+import leon.purescala.Definitions._
+import leon.purescala.Trees._
+import leon.purescala.Extractors._
+import leon.purescala.TypeTrees._
 
 object ArrayTransformation extends TransformationPhase {
 
diff --git a/src/main/scala/leon/EpsilonElimination.scala b/src/main/scala/leon/xlang/EpsilonElimination.scala
similarity index 79%
rename from src/main/scala/leon/EpsilonElimination.scala
rename to src/main/scala/leon/xlang/EpsilonElimination.scala
index dc69875d198f03366b99c30f4c5034dc89fa6b5d..f4a281e0bfe905b0ee6c3f3aa16294d27d03187d 100644
--- a/src/main/scala/leon/EpsilonElimination.scala
+++ b/src/main/scala/leon/xlang/EpsilonElimination.scala
@@ -1,10 +1,12 @@
-package leon
+package leon.xlang
 
-import purescala.Common._
-import purescala.Definitions._
-import purescala.Trees._
-import purescala.TreeOps._
-import purescala.TypeTrees._
+import leon.TransformationPhase
+import leon.LeonContext
+import leon.purescala.Common._
+import leon.purescala.Definitions._
+import leon.purescala.Trees._
+import leon.purescala.TreeOps._
+import leon.purescala.TypeTrees._
 
 object EpsilonElimination extends TransformationPhase {
 
diff --git a/src/main/scala/leon/FunctionClosure.scala b/src/main/scala/leon/xlang/FunctionClosure.scala
similarity index 97%
rename from src/main/scala/leon/FunctionClosure.scala
rename to src/main/scala/leon/xlang/FunctionClosure.scala
index 4da2ac1e9cd639e8a736670a3746098d431e790c..e23cdc98bbe6c04e807b762bd436ddd811c5ba45 100644
--- a/src/main/scala/leon/FunctionClosure.scala
+++ b/src/main/scala/leon/xlang/FunctionClosure.scala
@@ -1,11 +1,13 @@
-package leon
-
-import purescala.Common._
-import purescala.Definitions._
-import purescala.Trees._
-import purescala.Extractors._
-import purescala.TreeOps._
-import purescala.TypeTrees._
+package leon.xlang
+
+import leon.TransformationPhase
+import leon.LeonContext
+import leon.purescala.Common._
+import leon.purescala.Definitions._
+import leon.purescala.Trees._
+import leon.purescala.Extractors._
+import leon.purescala.TreeOps._
+import leon.purescala.TypeTrees._
 
 object FunctionClosure extends TransformationPhase{
 
diff --git a/src/main/scala/leon/ImperativeCodeElimination.scala b/src/main/scala/leon/xlang/ImperativeCodeElimination.scala
similarity index 97%
rename from src/main/scala/leon/ImperativeCodeElimination.scala
rename to src/main/scala/leon/xlang/ImperativeCodeElimination.scala
index 74bb863094d485c5e6f2967583ecdc3aa3a93708..4bb06376c5ac45f850986f08fe95ac2eb9bd407d 100644
--- a/src/main/scala/leon/ImperativeCodeElimination.scala
+++ b/src/main/scala/leon/xlang/ImperativeCodeElimination.scala
@@ -1,11 +1,13 @@
-package leon
-
-import purescala.Common._
-import purescala.Definitions._
-import purescala.Trees._
-import purescala.Extractors._
-import purescala.TypeTrees._
-import purescala.TreeOps._
+package leon.xlang
+
+import leon.TransformationPhase
+import leon.LeonContext
+import leon.purescala.Common._
+import leon.purescala.Definitions._
+import leon.purescala.Trees._
+import leon.purescala.Extractors._
+import leon.purescala.TypeTrees._
+import leon.purescala.TreeOps._
 
 object ImperativeCodeElimination extends TransformationPhase {