diff --git a/src/main/scala/leon/solvers/SolverFactory.scala b/src/main/scala/leon/solvers/SolverFactory.scala
index 56d0ae73381ac3bf2ff95958bf2529b7043444fb..6e7273a112f0861588f92330a2f8e3a4e4c3715c 100644
--- a/src/main/scala/leon/solvers/SolverFactory.scala
+++ b/src/main/scala/leon/solvers/SolverFactory.scala
@@ -67,55 +67,55 @@ object SolverFactory {
         ctx.reporter.fatalError("No SMT solver available: native Z3 api could not load and 'cvc4' or 'z3' binaries were not found in PATH.")
       }
     } else {
-      getFromName(ctx, program)(names.toSeq : _*)
+      getFromNames(ctx, program)(names.toSeq : _*)
     }
   }
 
-  private def getFromName(ctx: LeonContext, program: Program)(names: String*): SolverFactory[TimeoutSolver] = {
+  private def showSolvers(ctx: LeonContext) = {
+    ctx.reporter.error(availableSolversPretty)
+    ctx.reporter.fatalError("Aborting Leon...")
+  }
 
-    def getSolver(name: String): SolverFactory[TimeoutSolver] = name match {
-      case "fairz3" =>
-        SolverFactory(() => new FairZ3Solver(ctx, program) with TimeoutSolver)
+  def getFromName(ctx: LeonContext, program: Program)(name: String): SolverFactory[IncrementalSolver with TimeoutSolver] = name match {
+    case "fairz3" =>
+      SolverFactory(() => new FairZ3Solver(ctx, program) with TimeoutSolver)
 
-      case "unrollz3" =>
-        SolverFactory(() => new UnrollingSolver(ctx, program, new UninterpretedZ3Solver(ctx, program)) with TimeoutSolver)
+    case "unrollz3" =>
+      SolverFactory(() => new UnrollingSolver(ctx, program, new UninterpretedZ3Solver(ctx, program)) with TimeoutSolver)
 
-      case "enum"   =>
-        SolverFactory(() => new EnumerationSolver(ctx, program) with TimeoutSolver)
+    case "enum"   =>
+      SolverFactory(() => new EnumerationSolver(ctx, program) with TimeoutSolver)
 
-      case "ground" =>
-        SolverFactory(() => new GroundSolver(ctx, program) with TimeoutSolver)
+    case "ground" =>
+      SolverFactory(() => new GroundSolver(ctx, program) with TimeoutSolver)
 
-      case "smt-z3" =>
-        SolverFactory(() => new UnrollingSolver(ctx, program, new SMTLIBZ3Solver(ctx, program)) with TimeoutSolver)
+    case "smt-z3" =>
+      SolverFactory(() => new UnrollingSolver(ctx, program, new SMTLIBZ3Solver(ctx, program)) with TimeoutSolver)
 
-      case "smt-z3-q" =>
-        SolverFactory(() => new SMTLIBZ3QuantifiedSolver(ctx, program) with TimeoutSolver)
+    case "smt-z3-q" =>
+      SolverFactory(() => new SMTLIBZ3QuantifiedSolver(ctx, program) with TimeoutSolver)
 
-      case "smt-cvc4" =>
-        SolverFactory(() => new UnrollingSolver(ctx, program, new SMTLIBCVC4Solver(ctx, program)) with TimeoutSolver)
+    case "smt-cvc4" =>
+      SolverFactory(() => new UnrollingSolver(ctx, program, new SMTLIBCVC4Solver(ctx, program)) with TimeoutSolver)
 
-      case "smt-cvc4-proof" =>
-        SolverFactory(() => new SMTLIBCVC4ProofSolver(ctx, program) with TimeoutSolver)
+    case "smt-cvc4-proof" =>
+      SolverFactory(() => new SMTLIBCVC4ProofSolver(ctx, program) with TimeoutSolver)
 
-      case "smt-cvc4-cex" =>
-        SolverFactory(() => new SMTLIBCVC4CounterExampleSolver(ctx, program) with TimeoutSolver)
+    case "smt-cvc4-cex" =>
+      SolverFactory(() => new SMTLIBCVC4CounterExampleSolver(ctx, program) with TimeoutSolver)
 
-      case _ =>
-        ctx.reporter.error(s"Unknown solver $name")
-        showSolvers()
-    }
+    case _ =>
+      ctx.reporter.error(s"Unknown solver $name")
+      showSolvers(ctx)
+  }
 
-    def showSolvers() = {
-      ctx.reporter.error(availableSolversPretty)
-      ctx.reporter.fatalError("Aborting Leon...")
-    }
+  def getFromNames(ctx: LeonContext, program: Program)(names: String*): SolverFactory[TimeoutSolver] = {
 
-    val selectedSolvers = names.map(getSolver)
+    val selectedSolvers = names.map(getFromName(ctx, program))
 
     if (selectedSolvers.isEmpty) {
       ctx.reporter.error(s"No solver selected.")
-      showSolvers()
+      showSolvers(ctx)
     } else if (selectedSolvers.size == 1) {
       selectedSolvers.head
     } else {