Mostly new tests, some code annotations, some minor code changes: - RichText clone logic is wrong - TextElement doesn't have object properties, doesn't need clone