add option for custom hash function, custom hash separator

Added the following options
- Hash function
- Hash separator

Also added the tests