Cosmetic: "Secondary Index" is not a commonly known database term but used here in contrast to primary; clarified this
Cosmetic; use lowercase field names
Move some object create/frees to form Create and Destroy event to be sure they always run. More reliable than having to manually call init and keep track. Probably solves some memory leaks. Cosmetic: enforce naming convention: prepend F for all private/protected class members but not public/published