diff --git a/README.md b/README.md
index e3a49d8f23eb2e89885f6ff2f6bdeb81c3d4e99c..c71f28c4f4960f2d978553ea75db83d72c65acf0 100644
--- a/README.md
+++ b/README.md
@@ -41,14 +41,14 @@ to know more about series operations.
 ### DiscreteSeries
 
 To use a _DiscreteSeries_ you must give it a set of data to work with. These
-will define intervals, left-closed, right-open. Ie. 
-
+will define intervals with given values, left-closed, right-open. as in: 
 
 ```python
 fs = DiscreteSeries([(0,1), (3, 4), (5, 6)])
 fs[0.5] == 1
 fs[3] == 4
 fs[5] == 6
+fs.domain == '<0;5>'
 # fs[6] - NotInDomainError's
 ```
 
@@ -100,7 +100,7 @@ _ValueError_ will be thrown.
 
 ## Ranges
 
-Can be imported from _sai.series_.
+Can be imported from _sai.ranges_.
 
 Range would have been better called an **interval**. It is a continuous subset
 of the real number line.
diff --git a/firanka/__init__.py b/firanka/__init__.py
index 11d27f8c7c435c335afaa298cf06e2cc1b202e0c..66a87bb6e9111e056b787a60fc91234ac3cd7b3c 100644
--- a/firanka/__init__.py
+++ b/firanka/__init__.py
@@ -1 +1 @@
-__version__ = '0.1'
+__version__ = '0.1.5'
diff --git a/firanka/series/exceptions.py b/firanka/exceptions.py
similarity index 82%
rename from firanka/series/exceptions.py
rename to firanka/exceptions.py
index f8d6a2885e2e3c142dfbb2b4aee946cdab471144..5a960dece93dbe1c8ed50b5e08a5f5b07e927c6c 100644
--- a/firanka/series/exceptions.py
+++ b/firanka/exceptions.py
@@ -1,8 +1,10 @@
 # coding=UTF-8
 from __future__ import print_function, absolute_import, division
-import six
-import logging
 
+__all__ = [
+    'FirankaError',
+    'NotInDomainError',
+]
 
 class FirankaError(Exception):
     """
diff --git a/firanka/series/range.py b/firanka/ranges.py
similarity index 95%
rename from firanka/series/range.py
rename to firanka/ranges.py
index a5e45697951116cf71186d71cd5267970866af8f..9e5c64e160e99a9c8612856aa4b5f13adbb53352 100644
--- a/firanka/series/range.py
+++ b/firanka/ranges.py
@@ -1,15 +1,17 @@
 # coding=UTF-8
 from __future__ import print_function, absolute_import, division
 import six
-import logging
-import re
 import functools
 import math
 
-logger = logging.getLogger(__name__)
+__all__ = [
+    'Range',
+    'REAL_SET',
+    'EMPTY_SET'
+]
 
 
-def pre_range(fun):
+def _pre_range(fun):
     @functools.wraps(fun)
     def inner(self, arg, *args, **kwargs):
         if not isinstance(arg, Range):
@@ -100,7 +102,7 @@ class Range(object):
             '>' if self.right_inc else ')',
         )
 
-    @pre_range
+    @_pre_range
     def intersection(self, y):
         if self.start > y.start:
             return y.intersection(self)
@@ -108,10 +110,10 @@ class Range(object):
         assert self.start <= y.start
 
         if (self.stop < y.start) or (y.stop < y.start):
-            return EMPTY_RANGE
+            return EMPTY_SET
 
         if self.stop == y.start and not (self.right_inc and y.left_inc):
-            return EMPTY_RANGE
+            return EMPTY_SET
 
         if self.start == y.start:
             start = self.start
@@ -130,7 +132,7 @@ class Range(object):
 
         return Range(start, stop, left_inc, right_inc)
 
-    @pre_range
+    @_pre_range
     def __eq__(self, other):
         if self.is_empty() and other.is_empty():
             return True
@@ -140,5 +142,5 @@ class Range(object):
         return hash(self.start) ^ hash(self.stop)
 
 
-EMPTY_RANGE = Range(0, 0, False, False)
+EMPTY_SET = Range(0, 0, False, False)
 REAL_SET = Range(float('-inf'), float('+inf'), False, False)
diff --git a/firanka/series/__init__.py b/firanka/series/__init__.py
index fb30d506acd788a3a4732b98ef5fd2da58ee8fb3..3407ef614f2778c78992bee020fd4f4cbcec5dc6 100644
--- a/firanka/series/__init__.py
+++ b/firanka/series/__init__.py
@@ -1,18 +1,9 @@
 # coding=UTF-8
 from __future__ import print_function, absolute_import, division
-import six
-import logging
 
-from .exceptions import NotInDomainError, FirankaError
-from .range import Range, REAL_SET
 from .series import DiscreteSeries, FunctionSeries, ModuloSeries, Series
 
-
 __all__ = [
-    'REAL_SET',
-    'FirankaError',
-    'NotInDomainError',
-    'Range',
     'FunctionSeries',
     'DiscreteSeries',
     'ModuloSeries',
diff --git a/firanka/series/series.py b/firanka/series/series.py
index d5847d2900b710274129ea768d0b96421e88e70d..dcc777ae37a3a4ef27b0a182b669daf9eb5536fc 100644
--- a/firanka/series/series.py
+++ b/firanka/series/series.py
@@ -1,11 +1,13 @@
 
 # coding=UTF-8
 from __future__ import print_function, absolute_import, division
-import six
+
 import math
 
-from .range import Range, REAL_SET, EMPTY_RANGE
-from .exceptions import NotInDomainError
+import six
+
+from firanka.exceptions import NotInDomainError
+from firanka.ranges import Range, REAL_SET, EMPTY_SET
 
 
 class Series(object):
@@ -141,7 +143,7 @@ class DiscreteSeries(Series):
 
     def __init__(self, data, domain=None):
         if len(data) == 0:
-            domain = EMPTY_RANGE
+            domain = EMPTY_SET
         elif domain is None:
             domain = Range(data[0][0], data[-1][0], True, True)
 
diff --git a/requirements.txt b/requirements.txt
index 51695eebe71a5ec2a8c4182d21b47ede8728f1bf..ffe2fce498955b628014618b28c6bcf152466a4a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1 @@
 six
-satella
diff --git a/tests/test_series/test_range.py b/tests/test_series/test_range.py
index 4476b083c6260967955f36e4db92af193146600d..f116128a9bff68beb50e39399b8f3f45673de928 100644
--- a/tests/test_series/test_range.py
+++ b/tests/test_series/test_range.py
@@ -1,7 +1,7 @@
 # coding=UTF-8
 from __future__ import print_function, absolute_import, division
 import unittest
-from firanka.series import Range
+from firanka.ranges import Range
 
 
 class TestRange(unittest.TestCase):
@@ -42,7 +42,8 @@ class TestRange(unittest.TestCase):
         self.assertRaises(ValueError, lambda: Range('#2;3>'))
         self.assertRaises(ValueError, lambda: Range('(2;3!'))
         self.assertRaises(ValueError, lambda: Range('<-inf;3)'))
-        self.assertEqual(Range(1,2,True,False), Range('<1;2)'))
+        self.assertEqual(Range(1, 2, True, False), Range('<1;2)'))
+        self.assertEqual(Range(1, 2, True, False), '<1;2)')
 
     def test_contains(self):
         self.assertFalse(-1 in Range('<-10;-1)'))
diff --git a/tests/test_series/test_series.py b/tests/test_series/test_series.py
index 219a56c1696d39ce2f850eb51f200a1c15435b3b..f83a952e478e8a147f0c1b54ae26f0dd29bac45d 100644
--- a/tests/test_series/test_series.py
+++ b/tests/test_series/test_series.py
@@ -3,7 +3,9 @@ from __future__ import print_function, absolute_import, division
 import six
 import math
 import unittest
-from firanka.series import DiscreteSeries, FunctionSeries, Range, ModuloSeries, NotInDomainError
+from firanka.series import DiscreteSeries, FunctionSeries, ModuloSeries
+from firanka.ranges import Range
+from firanka.exceptions import NotInDomainError
 
 NOOP = lambda x: x