work on hashing etc