finished rich text support part1