edited using hashes