fleshing out hashtable impl.  this will take some effort to compile