hash
bit refactor