diff --git a/tupak/prior.py b/tupak/prior.py
index a46430fdbf46c587a2e2a854d858f7c6c6eed5f5..a1c8665acae05f56b7605fbce4357b9cf188da2f 100644
--- a/tupak/prior.py
+++ b/tupak/prior.py
@@ -123,23 +123,6 @@ class Prior(object):
         return label
 
 
-class Uniform(Prior):
-    """Uniform prior"""
-
-    def __init__(self, minimum, maximum, name=None, latex_label=None):
-        Prior.__init__(self, name, latex_label, minimum, maximum)
-        self.support = maximum - minimum
-
-    def rescale(self, val):
-        Prior.test_valid_for_rescaling(val)
-        return self.minimum + val * self.support
-
-    def prob(self, val):
-        """Return the prior probability of val"""
-        in_prior = (val >= self.minimum) & (val <= self.maximum)
-        return 1 / self.support * in_prior
-
-
 class DeltaFunction(Prior):
     """Dirac delta function prior, this always returns peak."""
 
@@ -191,6 +174,24 @@ class PowerLaw(Prior):
                                                                          - self.minimum ** (1 + self.alpha))) * in_prior
 
 
+class Uniform(PowerLaw):
+    """Uniform prior"""
+
+    def __init__(self, minimum, maximum, name=None, latex_label=None):
+        Prior.__init__(self, name, latex_label, minimum, maximum)
+        self.alpha = 0
+
+
+class LogUniform(PowerLaw):
+    """Uniform prior"""
+
+    def __init__(self, minimum, maximum, name=None, latex_label=None):
+        Prior.__init__(self, name, latex_label, minimum, maximum)
+        self.alpha = -1
+        if self.minimum<=0:
+            logging.warning('You specified a uniform-in-log prior with minimum={}'.format(self.minimum))
+
+
 class Cosine(Prior):
 
     def __init__(self, name=None, latex_label=None, minimum=-np.pi / 2, maximum=np.pi / 2):