Maintain tree structure data, provide add, delete, modify, query, replace, and flatten data structures. Callback functions can be called during tree construction to modify nodes