diff --git a/setup.py b/setup.py
index 6aee7226128904ab6ec9b2412aae13324679bc72..c2af0c0eb6d5ddc33203d74e50ca1ab11b8b8aa8 100644
--- a/setup.py
+++ b/setup.py
@@ -1,12 +1,38 @@
-from distutils.core import setup
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+    Setup file for wetb.
+
+    This file was generated with PyScaffold 2.5, a tool that easily
+    puts up a scaffold for your new Python project. Learn more under:
+    http://pyscaffold.readthedocs.org/
+"""
+
+import os
+import sys
+from setuptools import setup
+
+import numpy as np
 from distutils.extension import Extension
 from Cython.Distutils import build_ext
-import numpy
 
-ext_modules = [Extension("wetb.fatigue_tools.rainflowcounting.pair_range", ["./wetb/fatigue_tools/rainflowcounting/pair_range.pyx"], include_dirs = [numpy.get_include()])]
 
-setup(
-name = 'name',
-cmdclass = {'build_ext': build_ext},
-ext_modules = ext_modules
-)
\ No newline at end of file
+def setup_package():
+
+    path = 'wetb/fatigue_tools/rainflowcounting/'
+    module = 'wetb.fatigue_tools.rainflowcounting'
+    names = ['pair_range', 'peak_trough', 'rainflowcount_astm']
+    extlist = [Extension('%s.%s' % (module, n),
+                         [os.path.join(path, n)+'.pyx'],
+                         include_dirs=[np.get_include()]) for n in names]
+
+    needs_sphinx = {'build_sphinx', 'upload_docs'}.intersection(sys.argv)
+    sphinx = ['sphinx'] if needs_sphinx else []
+    setup(setup_requires=['six', 'pyscaffold>=2.5a0,<2.6a0'] + sphinx,
+          cmdclass = {'build_ext': build_ext},
+          ext_modules = extlist,
+          use_pyscaffold=True)
+
+
+if __name__ == "__main__":
+    setup_package()