functional hashtable