diff --git a/Makefile b/Makefile
deleted file mode 100644
index 66c6c6e877ec955f50953291b6b3682cdd6251b6..0000000000000000000000000000000000000000
--- a/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-splfr=/usr/local/sicstus4.7.1/bin/splfr
-main.so: main.pl main.cpp
-	$(splfr) -larmadillo -fopenmp -lmlpack -lstdc++ -cxx --struct main.pl main.cpp
-clean:
-	rm main.so
diff --git a/src/methods/bayesian_linear_regression/Makefile b/src/methods/bayesian_linear_regression/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..6bb2efcf81d8f7a835052be600ac8c122e03f195
--- /dev/null
+++ b/src/methods/bayesian_linear_regression/Makefile
@@ -0,0 +1,5 @@
+splfr=/usr/local/sicstus4.7.1/bin/splfr
+bayesian_linear_regression.so: bayesian_linear_regression.pl bayesian_linear_regression.cpp
+	$(splfr) -larmadillo -fopenmp -lmlpack -lstdc++ -cxx --struct bayesian_linear_regression.pl bayesian_linear_regression.cpp
+clean:
+	rm bayesian_linear_regression.so
diff --git a/main.cpp b/src/methods/bayesian_linear_regression/bayesian_linear_regression.cpp
similarity index 99%
rename from main.cpp
rename to src/methods/bayesian_linear_regression/bayesian_linear_regression.cpp
index 76150906473fb2ac6e5695996ff892781bfa9997..dc6813a2faf548b3c59c04b7d7df190f6c8eea9e 100644
--- a/main.cpp
+++ b/src/methods/bayesian_linear_regression/bayesian_linear_regression.cpp
@@ -2,7 +2,7 @@
 /* ex_glue.h is generated by splfr from the foreign/[2,3] facts.
    Always include the glue header in your foreign resource code.
 */
-#include "main_glue.h"
+#include "bayesian_linear_regression_glue.h"
 #include <mlpack/methods/bayesian_linear_regression/bayesian_linear_regression.hpp>
 #include <mlpack/core.hpp>
 
diff --git a/main.pl b/src/methods/bayesian_linear_regression/bayesian_linear_regression.pl
similarity index 94%
rename from main.pl
rename to src/methods/bayesian_linear_regression/bayesian_linear_regression.pl
index 99db83d97836f95605ad9f93c98b91a7866281b5..356dd274b530422e068f2ffc03d8d15d88159ac6 100644
--- a/main.pl
+++ b/src/methods/bayesian_linear_regression/bayesian_linear_regression.pl
@@ -24,9 +24,9 @@ foreign(train,  c, train(+pointer(float_array), +integer, +integer, +pointer(flo
 foreign(variance,  c, variance([-integer])).
 
 %% Defines what functions should be connected from main.cpp
-foreign_resource(main, [initModel, alpha, beta, dataOffset, dataScale, omega, predict, predictWithStd, rmse, train, variance]).
+foreign_resource(bayesian_linear_regression, [initModel, alpha, beta, dataOffset, dataScale, omega, predict, predictWithStd, rmse, train, variance]).
 
-:- load_foreign_resource(main).
+:- load_foreign_resource(bayesian_linear_regression).
 
 
 %% Functions for editing float arrays
diff --git a/iris.csv b/src/methods/bayesian_linear_regression/iris.csv
similarity index 100%
rename from iris.csv
rename to src/methods/bayesian_linear_regression/iris.csv