diff --git a/cluster/.gitkeep b/cluster/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/cluster/Makefile b/cluster/Makefile
deleted file mode 100644
index 210889bcbfa36bdd6ea7ffe107a23592ea1e408c..0000000000000000000000000000000000000000
--- a/cluster/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-FC=gfortran
-FCFLAGS=-std=legacy -O3
-LFLAGS=
-
-all: clu edfb
-
-clu: clu.o
-	$(FC) $(FCFLAGS) -o clu clu.o $(LFLAGS)
-
-edfb: edfb.o
-	$(FC) $(FCFLAGS) -o edfb edfb.o $(LFLAGS)
-
-clean:
-	rm -f *.o
-
-wipe:
-	rm -f clu edfb *.o
-
-%.o : %.f
-	$(FC) $(FCFLAGS) -c -o $@ $<
-
diff --git a/sphere/.gitkeep b/sphere/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/sphere/Makefile b/sphere/Makefile
deleted file mode 100644
index 47e5c07995edee6fac7f8ba32c056471e2ee670d..0000000000000000000000000000000000000000
--- a/sphere/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-FC=gfortran
-FCFLAGS=-std=legacy -O3
-LFLAGS=
-
-all: edfb sph
-
-edfb: edfb.o
-	$(FC) $(FCFLAGS) -o edfb edfb.o $(LFLAGS)
-
-sph: sph.o
-	$(FC) $(FCFLAGS) -o sph sph.o $(LFLAGS)
-
-clean:
-	rm -f *.o
-
-wipe:
-	rm -f edfb sph *.o
-
-%.o : %.f
-	$(FC) $(FCFLAGS) -c -o $@ $<
-
diff --git a/cluster/DCLU b/src/cluster/DCLU
similarity index 100%
rename from cluster/DCLU
rename to src/cluster/DCLU
diff --git a/cluster/DEDFB b/src/cluster/DEDFB
similarity index 100%
rename from cluster/DEDFB
rename to src/cluster/DEDFB
diff --git a/src/cluster/Makefile b/src/cluster/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f884a43e5634e1486ce9178047e45e91373caacf
--- /dev/null
+++ b/src/cluster/Makefile
@@ -0,0 +1,22 @@
+BUILDDIR=../../build/cluster
+FC=gfortran
+FCFLAGS=-std=legacy -O3
+LFLAGS=
+
+all: clu edfb
+
+clu: clu.o
+	$(FC) $(FCFLAGS) -o $(BUILDDIR)/clu $(BUILDDIR)/clu.o $(LFLAGS)
+
+edfb: edfb.o
+	$(FC) $(FCFLAGS) -o $(BUILDDIR)/edfb $(BUILDDIR)/edfb.o $(LFLAGS)
+
+clean:
+	rm -f $(BUILDDIR)/*.o
+
+wipe:
+	rm -f $(BUILDDIR)/clu $(BUILDDIR)/edfb $(BUILDDIR)/*.o
+
+%.o : %.f
+	$(FC) $(FCFLAGS) -c -o $(BUILDDIR)/$@ $<
+
diff --git a/cluster/OCLU b/src/cluster/OCLU
similarity index 100%
rename from cluster/OCLU
rename to src/cluster/OCLU
diff --git a/cluster/clu.f b/src/cluster/clu.f
similarity index 100%
rename from cluster/clu.f
rename to src/cluster/clu.f
diff --git a/cluster/edfb.f b/src/cluster/edfb.f
similarity index 100%
rename from cluster/edfb.f
rename to src/cluster/edfb.f
diff --git a/sphere/DEDFB b/src/sphere/DEDFB
similarity index 100%
rename from sphere/DEDFB
rename to src/sphere/DEDFB
diff --git a/sphere/DSPH b/src/sphere/DSPH
similarity index 100%
rename from sphere/DSPH
rename to src/sphere/DSPH
diff --git a/src/sphere/Makefile b/src/sphere/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..41d1d3342ed431507d63447b539fe3813fb2d827
--- /dev/null
+++ b/src/sphere/Makefile
@@ -0,0 +1,22 @@
+BUILDDIR=../../build/sphere
+FC=gfortran
+FCFLAGS=-std=legacy -O3
+LFLAGS=
+
+all: edfb sph
+
+edfb: edfb.o
+	$(FC) $(FCFLAGS) -o $(BUILDDIR)/edfb $(BUILDDIR)/edfb.o $(LFLAGS)
+
+sph: sph.o
+	$(FC) $(FCFLAGS) -o $(BUILDDIR)/sph $(BUILDDIR)/sph.o $(LFLAGS)
+
+clean:
+	rm -f $(BUILDDIR)/*.o
+
+wipe:
+	rm -f $(BUILDDIR)/edfb $(BUILDDIR)/sph $(BUILDDIR)/*.o
+
+%.o : %.f
+	$(FC) $(FCFLAGS) -c -o $(BUILDDIR)/$@ $<
+
diff --git a/sphere/OSPH b/src/sphere/OSPH
similarity index 100%
rename from sphere/OSPH
rename to src/sphere/OSPH
diff --git a/sphere/edfb.f b/src/sphere/edfb.f
similarity index 100%
rename from sphere/edfb.f
rename to src/sphere/edfb.f
diff --git a/sphere/sph.f b/src/sphere/sph.f
similarity index 100%
rename from sphere/sph.f
rename to src/sphere/sph.f
diff --git a/trapping/DFRFME b/src/trapping/DFRFME
similarity index 100%
rename from trapping/DFRFME
rename to src/trapping/DFRFME
diff --git a/trapping/DLFFFT b/src/trapping/DLFFFT
similarity index 100%
rename from trapping/DLFFFT
rename to src/trapping/DLFFFT
diff --git a/src/trapping/Makefile b/src/trapping/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..bfad43bddcd843a6d71010b2a39c6e36d09e403d
--- /dev/null
+++ b/src/trapping/Makefile
@@ -0,0 +1,22 @@
+BUILDDIR=../../build/trapping
+FC=gfortran
+FCFLAGS=-std=legacy -O3
+LFLAGS=
+
+all: frfme lffft
+
+frfme: frfme.o
+	$(FC) $(FCFLAGS) -o $(BUILDDIR)/frfme $(BUILDDIR)/frfme.o $(LFLAGS)
+
+lffft: lffft.o
+	$(FC) $(FCFLAGS) -o $(BUILDDIR)/lffft $(BUILDDIR)/lffft.o $(LFLAGS)
+
+clean:
+	rm -f $(BUILDDIR)/*.o
+
+wipe:
+	rm -f $(BUILDDIR)/frfme $(BUILDDIR)/lffft $(BUILDDIR)/*.o
+
+%.o : %.f
+	$(FC) $(FCFLAGS) -c -o $(BUILDDIR)/$@ $<
+
diff --git a/trapping/OFRF b/src/trapping/OFRF
similarity index 100%
rename from trapping/OFRF
rename to src/trapping/OFRF
diff --git a/trapping/frfme.f b/src/trapping/frfme.f
similarity index 100%
rename from trapping/frfme.f
rename to src/trapping/frfme.f
diff --git a/trapping/lffft.f b/src/trapping/lffft.f
similarity index 100%
rename from trapping/lffft.f
rename to src/trapping/lffft.f
diff --git a/trapping/.gitkeep b/trapping/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/trapping/Makefile b/trapping/Makefile
deleted file mode 100644
index 9ce1810263c4c5cb08d474d37679f31d3d6c2c3f..0000000000000000000000000000000000000000
--- a/trapping/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-FC=gfortran
-FCFLAGS=-std=legacy -O3
-LFLAGS=
-
-all: frfme lffft
-
-frfme: frfme.o
-	$(FC) $(FCFLAGS) -o frfme frfme.o $(LFLAGS)
-
-lffft: lffft.o
-	$(FC) $(FCFLAGS) -o lffft lffft.o $(LFLAGS)
-
-clean:
-	rm -f *.o
-
-wipe:
-	rm -f frfme lffft *.o
-
-%.o : %.f
-	$(FC) $(FCFLAGS) -c -o $@ $<
-