Changed python ranges to use iterables.
Added more unit tests.
Simplified implementation

        * Fixed up testing code
        * Removed complicated pointers
        * Fixed makefile