add better hash