Changed interface to use an opaque pointer
Added a double ended queue
add a simple coalesced chain hash table