diff --git a/tupak/detector.py b/tupak/detector.py
index ee794189ec425121b0a2df6412c4addc8dee484d..6976844a83ae7f33c021c3687a462f4644576e03 100644
--- a/tupak/detector.py
+++ b/tupak/detector.py
@@ -398,7 +398,7 @@ class PowerSpectralDensity:
 
     def __init__(self, asd_file=None, psd_file='aLIGO_ZERO_DET_high_P_psd.txt'):
         """
-        Instantiate a new PSD object.
+        Instantiate a new PowerSpectralDensity object.
 
         Only one of the asd_file or psd_file needs to be specified.
         If multiple are given, the first will be used.
@@ -498,15 +498,16 @@ def get_empty_interferometer(name):
     The available instruments are:
         H1, L1, V1, GEO600
 
-    Detector positions taken from LIGO-T980044-10 for L1/H1 and from arXiv:gr-qc/0008066 [45] for V1/GEO600
+    Detector positions taken from LIGO-T980044-10 for L1/H1 and from
+    arXiv:gr-qc/0008066 [45] for V1/GEO600
 
     Parameters
     ----------
     name: str
         Interferometer identifier.
 
-    Return
-    ------
+    Returns
+    -------
     interferometer: Interferometer
         Interferometer instance
     """
@@ -546,7 +547,7 @@ def get_interferometer_with_open_data(
         raw_data_file=None, **kwargs):
     """
     Helper function to obtain an Interferometer instance with appropriate
-    PSD and data, given an center_time
+    PSD and data, given an center_time.
 
     Parameters
     ----------
@@ -576,6 +577,7 @@ def get_interferometer_with_open_data(
     -------
     interferometer: `tupak.detector.Interferometer`
         An Interferometer instance with a PSD and frequency-domain strain data.
+
     """
 
     utils.check_directory_exists_and_if_not_mkdir(outdir)
@@ -647,14 +649,15 @@ def get_interferometer_with_fake_noise_and_injection(
         save=True):
     """
     Helper function to obtain an Interferometer instance with appropriate
-    PSD and data, given an center_time
+    power spectral density and data, given an center_time.
 
     Parameters
     ----------
     name: str
         Detector name, e.g., 'H1'.
     injection_polarizations: dict
-        polarizations of waveform to inject, output of waveform_generator.get_frequency_domain_signal
+        polarizations of waveform to inject, output of
+        `waveform_generator.get_frequency_domain_signal`
     injection_parameters: dict
         injection parameters, needed for sky position and timing
     sampling_frequency: float
@@ -672,6 +675,7 @@ def get_interferometer_with_fake_noise_and_injection(
     -------
     interferometer: `tupak.detector.Interferometer`
         An Interferometer instance with a PSD and frequency-domain strain data.
+
     """
 
     utils.check_directory_exists_and_if_not_mkdir(outdir)
@@ -716,9 +720,6 @@ def get_event_data(
     """
     Get open data for a specified event.
 
-    We currently know about:
-        GW150914
-
     Parameters
     ----------
     event: str
diff --git a/tupak/likelihood.py b/tupak/likelihood.py
index 9372cc6ad10db127a8f42b4f307464f297ad8033..4de7b91686e8ecb0f7186d6da136c59ca3a9f5c5 100644
--- a/tupak/likelihood.py
+++ b/tupak/likelihood.py
@@ -12,6 +12,36 @@ import logging
 
 
 class GravitationalWaveTransient(object):
+    """ A gravitational-wave transient likelihood object
+
+    This is the usual likelihood object to use for transient gravitational
+    wave parameter estimation. It computes the log-likelihood in the frequency
+    domain assuming a colored Gaussian noise model described by a power
+    spectral density
+
+
+    Parameters
+    ----------
+    interferometers: list
+        A list of `tupak.detector.Interferometer` instances - contains the
+        detector data and power spectral densities
+    waveform_generator: `tupak.waveform_generator.WaveformGenerator`
+        An object which computes the frequency-domain strain of the signal,
+        given some set of parameters
+    distance_marginalization: bool
+        If true, analytic distance marginalization
+    phase_marginalization: bool
+        If true, analytic phase marginalization
+    prior: dict
+        If given, used in the distance and phase marginalization.
+
+    Returns
+    -------
+    Likelihood: `tupak.likelihood.Likelihood`
+        A likehood object, able to compute the likelihood of the data given
+        some model parameters
+
+    """
     def __init__(self, interferometers, waveform_generator, distance_marginalization=False, phase_marginalization=False,
                  prior=None):
         # GravitationalWaveTransient.__init__(self, interferometers, waveform_generator)
@@ -148,7 +178,9 @@ def get_binary_black_hole_likelihood(interferometers):
         A list of `tupak.detector.Interferometer` instances, typically the
         output of either `tupak.detector.get_interferometer_with_open_data`
         or `tupak.detector.get_interferometer_with_fake_noise_and_injection`
+
     Returns
+    -------
     likelihood: tupak.likelihood.GravitationalWaveTransient
         The likelihood to pass to `run_sampler`
     """
diff --git a/tupak/waveform_generator.py b/tupak/waveform_generator.py
index 843ae839d3e9c9953efda399fc0f4621022265e0..30667d84050c34500034fbd736ceb6c49fce8f88 100644
--- a/tupak/waveform_generator.py
+++ b/tupak/waveform_generator.py
@@ -1,9 +1,9 @@
 import inspect
 
-import tupak
 from . import utils
 import numpy as np
 
+
 class WaveformGenerator(object):
     """ A waveform generator
 
@@ -24,13 +24,15 @@ class WaveformGenerator(object):
     parameters: dict
         Initial values for the parameters
     parameter_conversion: func
-        Function to convert from sampled parameters to parameters of the waveform generator
+        Function to convert from sampled parameters to parameters of the
+        waveform generator
     non_standard_sampling_parameter_keys: list
         List of parameter name for *non-standard* sampling parameters.
 
-    Note: the arguments of frequency_domain_source_model (except the first, which is the
-    frequencies at which to compute the strain) will be added to the
-    WaveformGenerator object and initialised to `None`.
+    Note: the arguments of frequency_domain_source_model (except the first,
+    which is the frequencies at which to compute the strain) will be added to
+    the WaveformGenerator object and initialised to `None`.
+
     """
 
     def __init__(self, time_duration, sampling_frequency, frequency_domain_source_model=None,
@@ -52,7 +54,7 @@ class WaveformGenerator(object):
         """ Wrapper to source_model """
         if self.parameter_conversion is not None:
             added_keys = self.parameter_conversion(self.parameters, self.non_standard_sampling_parameter_keys)
-            
+
         if self.frequency_domain_source_model is not None:
             model_frequency_strain = self.frequency_domain_source_model(self.frequency_array, **self.parameters)
         elif self.time_domain_source_model is not None: