hash functions
sparse