add tool_destroy()
rewrite shuffle.c to not use a linked list