diff --git a/sm/csm/structprior/MeasurementsLikelihood.cpp b/sm/csm/structprior/MeasurementsLikelihood.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..545dee0c5e0b8403a8ac8a971addcfda295b7974
--- /dev/null
+++ b/sm/csm/structprior/MeasurementsLikelihood.cpp
@@ -0,0 +1,37 @@
+#include "MeasurementsLikelihood.h"
+
+MeasurementsLikelihood::MeasurementsLikelihood(int likelihood_function)
+{
+	function_type = likelihood_function;
+
+
+}
+
+MeasurementsLikelihood::~MeasurementsLikelihood()
+{
+
+
+}
+
+void MeasurementsLikelihood::ComputeLikelihoods(std::vector<double> x_vector)
+{
+	int n = x_vector.size();
+	if (function_type == L2)
+	{
+		for (int i=0;i<n;i++)
+		{
+			//double error = 
+		
+		}
+		
+	
+	}
+	
+	if (function_type == L1)
+	{
+	
+	
+	}
+
+
+}
diff --git a/sm/csm/structprior/MeasurementsLikelihood.h b/sm/csm/structprior/MeasurementsLikelihood.h
new file mode 100644
index 0000000000000000000000000000000000000000..d663ab6cf65bd4b619501f972f189467b0dad8c0
--- /dev/null
+++ b/sm/csm/structprior/MeasurementsLikelihood.h
@@ -0,0 +1,35 @@
+#ifndef H_MEASUREMENTSLIKELIHOOD
+#define H_MEASUREMENTSLIKELIHOOD
+
+#define L1 1
+#define L2 2
+
+#include <csm/csm_all.h>
+#include <vector>
+
+struct LValues{
+
+	double error;
+	double grad[];
+
+};
+
+class MeasurementsLikelihood
+{
+public:
+//constructors
+	MeasurementsLikelihood(int likelihood_function);
+	virtual ~MeasurementsLikelihood(void);	
+	//class variables
+protected:
+	int function_type;
+public:
+	std::vector<LValues> values_vector;
+	//methods
+public:
+	void ComputeLikelihoods(std::vector<double> x_vector);
+	
+
+};
+
+#endif