An abstract data type that can be used for:  1. Mimicking a database table 2. A cache with lookup and rudimentary search functions 3. Serializing data structures (including nested structures) to a byte stream 4. Converting objects to/from an Xml representation (tinyXML dependency) 5. Fetching data from a database (currently Postgresql) into an easy to use structure. 6. Parsing/loading a CSV file into an easy to use variable ... etc  See code for more details