diff --git a/INSTALL b/INSTALL
index ac79196a72f2e4312df377d1e08c5c7e06bc2a6a..999ea6f359d322bcb47b40cbeb2aac8bd7e9ba6a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -23,7 +23,9 @@ Build
 -----
 Type:
 
-  make
+  make -C src
+
+This creates the binary src/coalg
 
 Installation
 ------------
@@ -51,7 +53,7 @@ Some formulas are
 
 So call for example:
 
-  ./coalg sat CL  <<< '<{ 1 2 }> C & [{ 1 2 }] ~C'
+  src/coalg sat CL  <<< '<{ 1 2 }> C & [{ 1 2 }] ~C'
 
 
 
diff --git a/ALCFormula.ml b/src/ALCFormula.ml
similarity index 100%
rename from ALCFormula.ml
rename to src/ALCFormula.ml
diff --git a/ALCFormula.mli b/src/ALCFormula.mli
similarity index 100%
rename from ALCFormula.mli
rename to src/ALCFormula.mli
diff --git a/ALCGraph.ml b/src/ALCGraph.ml
similarity index 100%
rename from ALCGraph.ml
rename to src/ALCGraph.ml
diff --git a/ALCGraph.mli b/src/ALCGraph.mli
similarity index 100%
rename from ALCGraph.mli
rename to src/ALCGraph.mli
diff --git a/ALCMisc.ml b/src/ALCMisc.ml
similarity index 100%
rename from ALCMisc.ml
rename to src/ALCMisc.ml
diff --git a/CoAlgFormula.ml b/src/CoAlgFormula.ml
similarity index 100%
rename from CoAlgFormula.ml
rename to src/CoAlgFormula.ml
diff --git a/CoAlgFormula.mli b/src/CoAlgFormula.mli
similarity index 100%
rename from CoAlgFormula.mli
rename to src/CoAlgFormula.mli
diff --git a/CoAlgLogicUtils.ml b/src/CoAlgLogicUtils.ml
similarity index 100%
rename from CoAlgLogicUtils.ml
rename to src/CoAlgLogicUtils.ml
diff --git a/CoAlgLogicUtils.mli b/src/CoAlgLogicUtils.mli
similarity index 100%
rename from CoAlgLogicUtils.mli
rename to src/CoAlgLogicUtils.mli
diff --git a/CoAlgLogics.ml b/src/CoAlgLogics.ml
similarity index 100%
rename from CoAlgLogics.ml
rename to src/CoAlgLogics.ml
diff --git a/CoAlgLogics.mli b/src/CoAlgLogics.mli
similarity index 100%
rename from CoAlgLogics.mli
rename to src/CoAlgLogics.mli
diff --git a/CoAlgMisc.ml b/src/CoAlgMisc.ml
similarity index 100%
rename from CoAlgMisc.ml
rename to src/CoAlgMisc.ml
diff --git a/CoAlgMisc.mli b/src/CoAlgMisc.mli
similarity index 100%
rename from CoAlgMisc.mli
rename to src/CoAlgMisc.mli
diff --git a/CoAlgReasoner.ml b/src/CoAlgReasoner.ml
similarity index 100%
rename from CoAlgReasoner.ml
rename to src/CoAlgReasoner.ml
diff --git a/CoAlgReasoner.mli b/src/CoAlgReasoner.mli
similarity index 100%
rename from CoAlgReasoner.mli
rename to src/CoAlgReasoner.mli
diff --git a/CoolUtils.ml b/src/CoolUtils.ml
similarity index 100%
rename from CoolUtils.ml
rename to src/CoolUtils.ml
diff --git a/CoolUtils.mli b/src/CoolUtils.mli
similarity index 100%
rename from CoolUtils.mli
rename to src/CoolUtils.mli
diff --git a/GMLMIP-0.1/.gitignore b/src/GMLMIP-0.1/.gitignore
similarity index 100%
rename from GMLMIP-0.1/.gitignore
rename to src/GMLMIP-0.1/.gitignore
diff --git a/GMLMIP-0.1/README.txt b/src/GMLMIP-0.1/README.txt
similarity index 100%
rename from GMLMIP-0.1/README.txt
rename to src/GMLMIP-0.1/README.txt
diff --git a/GMLMIP-0.1/config.mk b/src/GMLMIP-0.1/config.mk
similarity index 100%
rename from GMLMIP-0.1/config.mk
rename to src/GMLMIP-0.1/config.mk
diff --git a/GMLMIP-0.1/formulas/GML_formula.cpp b/src/GMLMIP-0.1/formulas/GML_formula.cpp
similarity index 100%
rename from GMLMIP-0.1/formulas/GML_formula.cpp
rename to src/GMLMIP-0.1/formulas/GML_formula.cpp
diff --git a/GMLMIP-0.1/formulas/GML_formula.h b/src/GMLMIP-0.1/formulas/GML_formula.h
similarity index 100%
rename from GMLMIP-0.1/formulas/GML_formula.h
rename to src/GMLMIP-0.1/formulas/GML_formula.h
diff --git a/GMLMIP-0.1/formulas/PML_formula.cpp b/src/GMLMIP-0.1/formulas/PML_formula.cpp
similarity index 100%
rename from GMLMIP-0.1/formulas/PML_formula.cpp
rename to src/GMLMIP-0.1/formulas/PML_formula.cpp
diff --git a/GMLMIP-0.1/formulas/PML_formula.h b/src/GMLMIP-0.1/formulas/PML_formula.h
similarity index 100%
rename from GMLMIP-0.1/formulas/PML_formula.h
rename to src/GMLMIP-0.1/formulas/PML_formula.h
diff --git a/GMLMIP-0.1/formulas/formula.cpp b/src/GMLMIP-0.1/formulas/formula.cpp
similarity index 100%
rename from GMLMIP-0.1/formulas/formula.cpp
rename to src/GMLMIP-0.1/formulas/formula.cpp
diff --git a/GMLMIP-0.1/formulas/formula.h b/src/GMLMIP-0.1/formulas/formula.h
similarity index 100%
rename from GMLMIP-0.1/formulas/formula.h
rename to src/GMLMIP-0.1/formulas/formula.h
diff --git a/GMLMIP-0.1/formulas/makefile b/src/GMLMIP-0.1/formulas/makefile
similarity index 100%
rename from GMLMIP-0.1/formulas/makefile
rename to src/GMLMIP-0.1/formulas/makefile
diff --git a/GMLMIP-0.1/formulas/rational.cpp b/src/GMLMIP-0.1/formulas/rational.cpp
similarity index 100%
rename from GMLMIP-0.1/formulas/rational.cpp
rename to src/GMLMIP-0.1/formulas/rational.cpp
diff --git a/GMLMIP-0.1/formulas/rational.h b/src/GMLMIP-0.1/formulas/rational.h
similarity index 100%
rename from GMLMIP-0.1/formulas/rational.h
rename to src/GMLMIP-0.1/formulas/rational.h
diff --git a/GMLMIP-0.1/formulas/satisfyingassignment.cpp b/src/GMLMIP-0.1/formulas/satisfyingassignment.cpp
similarity index 100%
rename from GMLMIP-0.1/formulas/satisfyingassignment.cpp
rename to src/GMLMIP-0.1/formulas/satisfyingassignment.cpp
diff --git a/GMLMIP-0.1/formulas/satisfyingassignment.h b/src/GMLMIP-0.1/formulas/satisfyingassignment.h
similarity index 100%
rename from GMLMIP-0.1/formulas/satisfyingassignment.h
rename to src/GMLMIP-0.1/formulas/satisfyingassignment.h
diff --git a/GMLMIP-0.1/input b/src/GMLMIP-0.1/input
similarity index 100%
rename from GMLMIP-0.1/input
rename to src/GMLMIP-0.1/input
diff --git a/GMLMIP-0.1/main.cpp b/src/GMLMIP-0.1/main.cpp
similarity index 100%
rename from GMLMIP-0.1/main.cpp
rename to src/GMLMIP-0.1/main.cpp
diff --git a/GMLMIP-0.1/makefile b/src/GMLMIP-0.1/makefile
similarity index 100%
rename from GMLMIP-0.1/makefile
rename to src/GMLMIP-0.1/makefile
diff --git a/GMLMIP-0.1/onestep-example.cpp b/src/GMLMIP-0.1/onestep-example.cpp
similarity index 100%
rename from GMLMIP-0.1/onestep-example.cpp
rename to src/GMLMIP-0.1/onestep-example.cpp
diff --git a/GMLMIP-0.1/onestep.cpp b/src/GMLMIP-0.1/onestep.cpp
similarity index 100%
rename from GMLMIP-0.1/onestep.cpp
rename to src/GMLMIP-0.1/onestep.cpp
diff --git a/GMLMIP-0.1/onestep.h b/src/GMLMIP-0.1/onestep.h
similarity index 100%
rename from GMLMIP-0.1/onestep.h
rename to src/GMLMIP-0.1/onestep.h
diff --git a/GMLMIP-0.1/parser/.gitignore b/src/GMLMIP-0.1/parser/.gitignore
similarity index 100%
rename from GMLMIP-0.1/parser/.gitignore
rename to src/GMLMIP-0.1/parser/.gitignore
diff --git a/GMLMIP-0.1/parser/makefile b/src/GMLMIP-0.1/parser/makefile
similarity index 100%
rename from GMLMIP-0.1/parser/makefile
rename to src/GMLMIP-0.1/parser/makefile
diff --git a/GMLMIP-0.1/parser/mlf-driver.cpp b/src/GMLMIP-0.1/parser/mlf-driver.cpp
similarity index 100%
rename from GMLMIP-0.1/parser/mlf-driver.cpp
rename to src/GMLMIP-0.1/parser/mlf-driver.cpp
diff --git a/GMLMIP-0.1/parser/mlf-driver.h b/src/GMLMIP-0.1/parser/mlf-driver.h
similarity index 100%
rename from GMLMIP-0.1/parser/mlf-driver.h
rename to src/GMLMIP-0.1/parser/mlf-driver.h
diff --git a/GMLMIP-0.1/parser/mlf-parser.yy b/src/GMLMIP-0.1/parser/mlf-parser.yy
similarity index 100%
rename from GMLMIP-0.1/parser/mlf-parser.yy
rename to src/GMLMIP-0.1/parser/mlf-parser.yy
diff --git a/GMLMIP-0.1/parser/mlf-scanner.ll b/src/GMLMIP-0.1/parser/mlf-scanner.ll
similarity index 100%
rename from GMLMIP-0.1/parser/mlf-scanner.ll
rename to src/GMLMIP-0.1/parser/mlf-scanner.ll
diff --git a/GMLMIP-0.1/parser/test.cpp b/src/GMLMIP-0.1/parser/test.cpp
similarity index 100%
rename from GMLMIP-0.1/parser/test.cpp
rename to src/GMLMIP-0.1/parser/test.cpp
diff --git a/GMLMIP-0.1/rand.pl b/src/GMLMIP-0.1/rand.pl
similarity index 100%
rename from GMLMIP-0.1/rand.pl
rename to src/GMLMIP-0.1/rand.pl
diff --git a/GMLMIP-0.1/rules/GML_premise.cpp b/src/GMLMIP-0.1/rules/GML_premise.cpp
similarity index 100%
rename from GMLMIP-0.1/rules/GML_premise.cpp
rename to src/GMLMIP-0.1/rules/GML_premise.cpp
diff --git a/GMLMIP-0.1/rules/GML_premise.h b/src/GMLMIP-0.1/rules/GML_premise.h
similarity index 100%
rename from GMLMIP-0.1/rules/GML_premise.h
rename to src/GMLMIP-0.1/rules/GML_premise.h
diff --git a/GMLMIP-0.1/rules/PML_premise.cpp b/src/GMLMIP-0.1/rules/PML_premise.cpp
similarity index 100%
rename from GMLMIP-0.1/rules/PML_premise.cpp
rename to src/GMLMIP-0.1/rules/PML_premise.cpp
diff --git a/GMLMIP-0.1/rules/PML_premise.h b/src/GMLMIP-0.1/rules/PML_premise.h
similarity index 100%
rename from GMLMIP-0.1/rules/PML_premise.h
rename to src/GMLMIP-0.1/rules/PML_premise.h
diff --git a/GMLMIP-0.1/rules/makefile b/src/GMLMIP-0.1/rules/makefile
similarity index 100%
rename from GMLMIP-0.1/rules/makefile
rename to src/GMLMIP-0.1/rules/makefile
diff --git a/GMLMIP-0.1/rules/node.cpp b/src/GMLMIP-0.1/rules/node.cpp
similarity index 100%
rename from GMLMIP-0.1/rules/node.cpp
rename to src/GMLMIP-0.1/rules/node.cpp
diff --git a/GMLMIP-0.1/rules/node.h b/src/GMLMIP-0.1/rules/node.h
similarity index 100%
rename from GMLMIP-0.1/rules/node.h
rename to src/GMLMIP-0.1/rules/node.h
diff --git a/GMLMIP-0.1/rules/premise.cpp b/src/GMLMIP-0.1/rules/premise.cpp
similarity index 100%
rename from GMLMIP-0.1/rules/premise.cpp
rename to src/GMLMIP-0.1/rules/premise.cpp
diff --git a/GMLMIP-0.1/rules/premise.h b/src/GMLMIP-0.1/rules/premise.h
similarity index 100%
rename from GMLMIP-0.1/rules/premise.h
rename to src/GMLMIP-0.1/rules/premise.h
diff --git a/GMLMIP-0.1/rules/radixtree.cpp b/src/GMLMIP-0.1/rules/radixtree.cpp
similarity index 100%
rename from GMLMIP-0.1/rules/radixtree.cpp
rename to src/GMLMIP-0.1/rules/radixtree.cpp
diff --git a/GMLMIP-0.1/rules/radixtree.h b/src/GMLMIP-0.1/rules/radixtree.h
similarity index 100%
rename from GMLMIP-0.1/rules/radixtree.h
rename to src/GMLMIP-0.1/rules/radixtree.h
diff --git a/GMLMIP-0.1/rules/setofconclusions.cpp b/src/GMLMIP-0.1/rules/setofconclusions.cpp
similarity index 100%
rename from GMLMIP-0.1/rules/setofconclusions.cpp
rename to src/GMLMIP-0.1/rules/setofconclusions.cpp
diff --git a/GMLMIP-0.1/rules/setofconclusions.h b/src/GMLMIP-0.1/rules/setofconclusions.h
similarity index 100%
rename from GMLMIP-0.1/rules/setofconclusions.h
rename to src/GMLMIP-0.1/rules/setofconclusions.h
diff --git a/GMLMIP-0.1/rules/sizefunctions.cpp b/src/GMLMIP-0.1/rules/sizefunctions.cpp
similarity index 100%
rename from GMLMIP-0.1/rules/sizefunctions.cpp
rename to src/GMLMIP-0.1/rules/sizefunctions.cpp
diff --git a/GMLMIP-0.1/rules/sizefunctions.h b/src/GMLMIP-0.1/rules/sizefunctions.h
similarity index 100%
rename from GMLMIP-0.1/rules/sizefunctions.h
rename to src/GMLMIP-0.1/rules/sizefunctions.h
diff --git a/GMLMIP-0.1/rules/test.cpp b/src/GMLMIP-0.1/rules/test.cpp
similarity index 100%
rename from GMLMIP-0.1/rules/test.cpp
rename to src/GMLMIP-0.1/rules/test.cpp
diff --git a/GMLMIP-0.1/rules/valuation.cpp b/src/GMLMIP-0.1/rules/valuation.cpp
similarity index 100%
rename from GMLMIP-0.1/rules/valuation.cpp
rename to src/GMLMIP-0.1/rules/valuation.cpp
diff --git a/GMLMIP-0.1/rules/valuation.h b/src/GMLMIP-0.1/rules/valuation.h
similarity index 100%
rename from GMLMIP-0.1/rules/valuation.h
rename to src/GMLMIP-0.1/rules/valuation.h
diff --git a/GMLMIP-0.1/satisfyingstack.h b/src/GMLMIP-0.1/satisfyingstack.h
similarity index 100%
rename from GMLMIP-0.1/satisfyingstack.h
rename to src/GMLMIP-0.1/satisfyingstack.h
diff --git a/GMLMIP-0.1/timeoutwrapper.sh b/src/GMLMIP-0.1/timeoutwrapper.sh
similarity index 100%
rename from GMLMIP-0.1/timeoutwrapper.sh
rename to src/GMLMIP-0.1/timeoutwrapper.sh
diff --git a/HashConsing.ml b/src/HashConsing.ml
similarity index 100%
rename from HashConsing.ml
rename to src/HashConsing.ml
diff --git a/HashConsing.mli b/src/HashConsing.mli
similarity index 100%
rename from HashConsing.mli
rename to src/HashConsing.mli
diff --git a/Makefile b/src/Makefile
similarity index 100%
rename from Makefile
rename to src/Makefile
diff --git a/MiscSolver.ml b/src/MiscSolver.ml
similarity index 100%
rename from MiscSolver.ml
rename to src/MiscSolver.ml
diff --git a/MiscSolver.mli b/src/MiscSolver.mli
similarity index 100%
rename from MiscSolver.mli
rename to src/MiscSolver.mli
diff --git a/altGenlex.ml b/src/altGenlex.ml
similarity index 100%
rename from altGenlex.ml
rename to src/altGenlex.ml
diff --git a/altGenlex.mli b/src/altGenlex.mli
similarity index 100%
rename from altGenlex.mli
rename to src/altGenlex.mli
diff --git a/coalg.ml b/src/coalg.ml
similarity index 100%
rename from coalg.ml
rename to src/coalg.ml
diff --git a/coalgcompare.ml b/src/coalgcompare.ml
similarity index 100%
rename from coalgcompare.ml
rename to src/coalgcompare.ml
diff --git a/genAndComp.ml b/src/genAndComp.ml
similarity index 100%
rename from genAndComp.ml
rename to src/genAndComp.ml
diff --git a/gmlmip.ml b/src/gmlmip.ml
similarity index 100%
rename from gmlmip.ml
rename to src/gmlmip.ml
diff --git a/gmlmip.mli b/src/gmlmip.mli
similarity index 100%
rename from gmlmip.mli
rename to src/gmlmip.mli
diff --git a/gmlmip_stub.cc b/src/gmlmip_stub.cc
similarity index 100%
rename from gmlmip_stub.cc
rename to src/gmlmip_stub.cc
diff --git a/minisat.ml b/src/minisat.ml
similarity index 100%
rename from minisat.ml
rename to src/minisat.ml
diff --git a/minisat.mli b/src/minisat.mli
similarity index 100%
rename from minisat.mli
rename to src/minisat.mli
diff --git a/minisat_stub.cc b/src/minisat_stub.cc
similarity index 100%
rename from minisat_stub.cc
rename to src/minisat_stub.cc