diff --git a/tupak/prior.py b/tupak/prior.py
index 164f76c2ad5bfd28a470dd8e92c2293e7ab6ef8f..832855be16ef53d830eead9dbd7fb9cf56fb15e7 100644
--- a/tupak/prior.py
+++ b/tupak/prior.py
@@ -339,18 +339,8 @@ class Interped(Prior):
     @minimum.setter
     def minimum(self, minimum):
         self.__minimum = minimum
-        if '_Interped__maximum' in self.__dict__ and self._Interped__maximum < np.inf:
-            self.xx = np.linspace(minimum, self.maximum, len(self.xx))
-            self.yy = self.all_interpolated(self.xx)
-            if np.trapz(self.yy, self.xx) != 1:
-                logging.info('Supplied PDF for {} is not normalised, normalising.'.format(self.name))
-            self.yy /= np.trapz(self.yy, self.xx)
-            self.YY = cumtrapz(self.yy, self.xx, initial=0)
-            # Need last element of cumulative distribution to be exactly one.
-            self.YY[-1] = 1
-            self.probability_density = interp1d(x=self.xx, y=self.yy, bounds_error=False, fill_value=0)
-            self.cumulative_distribution = interp1d(x=self.xx, y=self.YY, bounds_error=False, fill_value=0)
-            self.inverse_cumulative_distribution = interp1d(x=self.YY, y=self.xx, bounds_error=True)
+        if '_Interped__maximum' in self.__dict__ and self.__maximum < np.inf:
+            self.__update_instance()
 
     @property
     def maximum(self):
@@ -359,18 +349,21 @@ class Interped(Prior):
     @maximum.setter
     def maximum(self, maximum):
         self.__maximum = maximum
-        if '_Interped__minimum' in self.__dict__ and self._Interped__minimum < np.inf:
-            self.xx = np.linspace(self.minimum, maximum, len(self.xx))
-            self.yy = self.all_interpolated(self.xx)
-            if np.trapz(self.yy, self.xx) != 1:
-                logging.info('Supplied PDF for {} is not normalised, normalising.'.format(self.name))
-            self.yy /= np.trapz(self.yy, self.xx)
-            self.YY = cumtrapz(self.yy, self.xx, initial=0)
-            # Need last element of cumulative distribution to be exactly one.
-            self.YY[-1] = 1
-            self.probability_density = interp1d(x=self.xx, y=self.yy, bounds_error=False, fill_value=0)
-            self.cumulative_distribution = interp1d(x=self.xx, y=self.YY, bounds_error=False, fill_value=0)
-            self.inverse_cumulative_distribution = interp1d(x=self.YY, y=self.xx, bounds_error=True)
+        if '_Interped__minimum' in self.__dict__ and self.__minimum < np.inf:
+            self.__update_instance()
+
+    def __update_instance(self):
+        self.xx = np.linspace(self.minimum, self.maximum, len(self.xx))
+        self.yy = self.all_interpolated(self.xx)
+        if np.trapz(self.yy, self.xx) != 1:
+            logging.info('Supplied PDF for {} is not normalised, normalising.'.format(self.name))
+        self.yy /= np.trapz(self.yy, self.xx)
+        self.YY = cumtrapz(self.yy, self.xx, initial=0)
+        # Need last element of cumulative distribution to be exactly one.
+        self.YY[-1] = 1
+        self.probability_density = interp1d(x=self.xx, y=self.yy, bounds_error=False, fill_value=0)
+        self.cumulative_distribution = interp1d(x=self.xx, y=self.YY, bounds_error=False, fill_value=0)
+        self.inverse_cumulative_distribution = interp1d(x=self.YY, y=self.xx, bounds_error=True)
 
 
 class FromFile(Interped):