Some refactoring
Hashing in diffrent ranges
Add unit tests