add hashing and tested