WIP
Pass unit tests
Merge branch 'hash'

* hash:
  Pass unit tests
  WIP