I added a new unit to the package: StringBlockUnit. I initially intended to name it "SmartStringUnit", but I thought that "StringBlock" suits it better. This new unit contains a class for storing strings in a linked list of blocks of pointers so that when one appends a string to it, the memory does not gets reallocated. It only allocates a new string when ToString method is called. This method returns a string containing all previously added strings.