diff --git a/imagine/sample.py b/imagine/sample.py
index a4d1cb3fc5b945c3a4575566369f79dee680a286..501727f3fff298f6a5f5bcba5f42796fde76c1de 100644
--- a/imagine/sample.py
+++ b/imagine/sample.py
@@ -2,6 +2,8 @@
 
 import simplejson as json
 
+import numpy as np
+
 from keepers import Loggable,\
                     Versionable
 
@@ -10,10 +12,13 @@ from imagine.magnetic_fields import MagneticField
 
 
 class Sample(Loggable, Versionable, object):
-    def __init__(self):
-        self._variables = None
-        self._magnetic_field = None
-        self._observables = None
+    def __init__(self, variables=None, magnetic_field=None, observables=None,
+                 likelihood=None, total_likelihood=None):
+        self.variables = variables
+        self.magnetic_field = magnetic_field
+        self.observables = observables
+        self.likelihood = likelihood
+        self.total_likelihood = total_likelihood
 
     @property
     def variables(self):
@@ -50,10 +55,36 @@ class Sample(Loggable, Versionable, object):
             parsed_observables[key] = value
         self._observables = parsed_observables
 
+    @property
+    def likelihood(self):
+        return self._likelihood
+
+    @likelihood.setter
+    def likelihood(self, likelihood):
+        if np.isscalar(likelihood):
+            likelihood = (likelihood, )
+        else:
+            likelihood = tuple(likelihood)
+        self._likelihood = likelihood
+
+    @property
+    def total_likelihood(self):
+        return self._total_likelihood
+
+    @total_likelihood.setter
+    def total_likelihood(self, total_likelihood):
+        self._total_likelihood = np.float(total_likelihood)
+
     def _to_hdf5(self, hdf5_group):
         if self._variables is not None:
             hdf5_group.attrs['variables'] = json.dumps(self._variables)
 
+        if self._likelihood is not None:
+            hdf5_group['likelihood'] = self._likelihood
+
+        if self._total_likelihood is not None:
+            hdf5_group.attrs['total_likelihood'] = self._total_likelihood
+
         return_dict = {}
         if self._magnetic_field is not None:
             return_dict['magnetic_field'] = self._magnetic_field
@@ -74,6 +105,16 @@ class Sample(Loggable, Versionable, object):
         except(KeyError):
             pass
 
+        try:
+            new_sample._likelihood = tuple(hdf5_group['likelihood'])
+        except(KeyError):
+            pass
+
+        try:
+            new_sample._total_likelihood = hdf5_group.attrs['total_likelihood']
+        except(KeyError):
+            pass
+
         try:
             magnetic_field = repository.get('magnetic_field', hdf5_group)
             new_sample._magnetic_field = magnetic_field