added full hashtable functionality