diff --git a/solutions/RSync/src/main/scala/MainApp.scala b/solutions/RSync/src/main/scala/MainApp.scala
index 8628f49d53676924cfd8bafeb16a7d7fece2f42f..884225261f3071171b14bf3d3c585d0bee818664 100644
--- a/solutions/RSync/src/main/scala/MainApp.scala
+++ b/solutions/RSync/src/main/scala/MainApp.scala
@@ -1,4 +1,4 @@
-import ttc2019.{CompleteTTCProcess, MetricMeasurement, TTCProcessConfiguration}
+import ttc2019.{CompleteTTCProcess, MetricMeasurement, ProcessMode, TTCProcessConfiguration}
 import ttc2019.benchmark.{Benchmark, BenchmarkInfo, ReportingUtility}
 
 import scala.reflect.io.File
@@ -12,11 +12,19 @@ object MainApp extends App {
   val Load = "Load"
   val Run = "Run"
 
+  var processMode = ProcessMode.BDT
+  if (args.length >= 1) {
+    args.apply(1) match {
+      case "bdt" => processMode = ProcessMode.BDT
+      case "bdd" => processMode = ProcessMode.BDD
+      case "bdt-u" => processMode = ProcessMode.BDTU
+      case "bdd-u" => processMode = ProcessMode.BDDU
+    }
+  }
+
   private val modelPath = sys.env.get("ModelPath")
   private val benchmarkInfo = fetchBenchmarkInfo()
 
-  println()
-
   if (modelPath.isEmpty) {
     sys.error("Expected model to convert in the ModelPath environment variable")
   }
@@ -24,7 +32,7 @@ object MainApp extends App {
   modelPath.foreach(modelPath => {
     val ttModelFile = File(modelPath)
     val bddModelFile = buildBddModelFile(ttModelFile)
-    val processConfig = TTCProcessConfiguration(ttFileName = modelPath, bddFileName = bddModelFile.jfile.getCanonicalPath)
+    val processConfig = TTCProcessConfiguration(ttFileName = modelPath, bddFileName = bddModelFile.jfile.getCanonicalPath, processMode = processMode)
 
     val benchmarkingService: Benchmark = new Benchmark
     var benchmarkDuration: Long = -1
diff --git a/solutions/RSync/src/main/scala/ttc2019/CompleteTTCProcess.scala b/solutions/RSync/src/main/scala/ttc2019/CompleteTTCProcess.scala
index 20cbcd2950212694a02839bc8714f1236367b460..a15e71b22827bca57f57b0ed2350061eeee148fc 100644
--- a/solutions/RSync/src/main/scala/ttc2019/CompleteTTCProcess.scala
+++ b/solutions/RSync/src/main/scala/ttc2019/CompleteTTCProcess.scala
@@ -33,16 +33,16 @@ object CompleteTTCProcess extends App {
    */
   def initialize(processConfig: TTCProcessConfiguration): Unit = {
     val sync = true
-    bdt = false
+    bdt = processConfig.processMode == ProcessMode.BDT || processConfig.processMode == ProcessMode.BDTU
     loader = new TTCLoader
     validator = new Launcher
     if (sync) {
       ctts = new CreateTruthTableSync()
       if (bdt) {
-        integrate = BdtSyncIntegration
+        integrate = if (processConfig.processMode == ProcessMode.BDT) BdtSyncIntegration else BdtSyncIntegrationWithoutOrder
         writeOut = WriteSyncBdtOutput
       } else {
-        integrate = BddSyncIntegration
+        integrate = if (processConfig.processMode == ProcessMode.BDD) BddSyncIntegration else BddSyncIntegrationWithoutOrder
         writeOut = WriteSyncBddOutput
       }
     } else {
diff --git a/solutions/RSync/src/main/scala/ttc2019/ProcessMode.scala b/solutions/RSync/src/main/scala/ttc2019/ProcessMode.scala
new file mode 100644
index 0000000000000000000000000000000000000000..413540d838b02bb8c56676dd68397fab99effe8e
--- /dev/null
+++ b/solutions/RSync/src/main/scala/ttc2019/ProcessMode.scala
@@ -0,0 +1,6 @@
+package ttc2019
+
+object ProcessMode extends Enumeration {
+  type ProcessMode = Value
+  val BDT, BDTU, BDD, BDDU = Value
+}
diff --git a/solutions/RSync/src/main/scala/ttc2019/TTCProcessConfiguration.scala b/solutions/RSync/src/main/scala/ttc2019/TTCProcessConfiguration.scala
index 66c955e0ec97f113f897079a6668ce4f1bfcb812..de2868c8a6146f43d338185cd8433ac374b4ea32 100644
--- a/solutions/RSync/src/main/scala/ttc2019/TTCProcessConfiguration.scala
+++ b/solutions/RSync/src/main/scala/ttc2019/TTCProcessConfiguration.scala
@@ -1,5 +1,7 @@
 package ttc2019
 
+import ttc2019.ProcessMode.ProcessMode
+
 /** The `ProcessConfiguration` contains all necessary information to setup an entire transformation
   * workflow as specified by the [[CompleteTTCProcess]].
   *
@@ -10,5 +12,5 @@ package ttc2019
   *     decision diagram should be stored
   *   - `ttEcoreName` references the path to the truth table EMF model
   */
-case class TTCProcessConfiguration(ttFileName: String, bddFileName: String, ttEcoreName: String = "TT.ecore")
+case class TTCProcessConfiguration(ttFileName: String, bddFileName: String, ttEcoreName: String = "TT.ecore", processMode: ProcessMode)
 
diff --git a/solutions/RSyncBDD-Unordered/solution.ini b/solutions/RSyncBDD-Unordered/solution.ini
new file mode 100644
index 0000000000000000000000000000000000000000..088595848f1cbb7cf9f23aa5ba7f7c58d1b83257
--- /dev/null
+++ b/solutions/RSyncBDD-Unordered/solution.ini
@@ -0,0 +1,6 @@
+[build]
+default=cd ../RSync && sbt compile
+skipTests=cd ../RSync && sbt compile
+
+[run]
+cmd=cd ../RSync && sbt --error run bdd-u
diff --git a/solutions/RSyncBDD/solution.ini b/solutions/RSyncBDD/solution.ini
new file mode 100644
index 0000000000000000000000000000000000000000..c4ee03932dde1a82809804e89536b06b727f10d8
--- /dev/null
+++ b/solutions/RSyncBDD/solution.ini
@@ -0,0 +1,6 @@
+[build]
+default=cd ../RSync && sbt compile
+skipTests=cd ../RSync && sbt compile
+
+[run]
+cmd=cd ../RSync && sbt --error run bdd
diff --git a/solutions/RSyncBDT-Unordered/solution.ini b/solutions/RSyncBDT-Unordered/solution.ini
new file mode 100644
index 0000000000000000000000000000000000000000..7672bc85cfba29b318a9d7d16eac085185991fa5
--- /dev/null
+++ b/solutions/RSyncBDT-Unordered/solution.ini
@@ -0,0 +1,6 @@
+[build]
+default=cd ../RSync && sbt compile
+skipTests=cd ../RSync && sbt compile
+
+[run]
+cmd=cd ../RSync && sbt --error run bdt-u
diff --git a/solutions/RSyncBDT/solution.ini b/solutions/RSyncBDT/solution.ini
new file mode 100644
index 0000000000000000000000000000000000000000..7358b66855969a0421dcb37e41f13a5aefa936b7
--- /dev/null
+++ b/solutions/RSyncBDT/solution.ini
@@ -0,0 +1,6 @@
+[build]
+default=cd ../RSync && sbt compile
+skipTests=cd ../RSync && sbt compile
+
+[run]
+cmd=cd ../RSync && sbt --error run bdt