uses TAStringDataStructures