-void dictionary_init(dictionary_t*dict);
-void dictionary_put(dictionary_t*dict, string_t t1, void* t2);
-void dictionary_put2(dictionary_t*dict, const char* t1, void* t2);
-void* dictionary_lookup(dictionary_t*dict, const char*name);
-void dictionary_dump(dictionary_t*dict, FILE*fi, const char*prefix);
-void dictionary_del(dictionary_t*dict, const char* name);
-void dictionary_clear(dictionary_t*dict);
-void dictionary_destroy(dictionary_t*dict);
+dict_t*dict_new();
+void dict_init(dict_t*dict);
+void dict_put(dict_t*dict, string_t t1, void* t2);
+void dict_put2(dict_t*dict, const char* t1, void* t2);
+stringarray_t* dict_index(dict_t*dict);
+int dict_count(dict_t* dict);
+void* dict_lookup(dict_t*dict, const char*name);
+void dict_dump(dict_t*dict, FILE*fi, const char*prefix);
+char dict_del(dict_t*dict, const char* name);
+void dict_foreach_value(dict_t*h, void (*runFunction)(void*));
+void dict_free_all(dict_t*h, void (*freeFunction)(void*));
+void dict_clear(dict_t*dict);
+void dict_destroy(dict_t*dict);