added uthash and new structs