added text manipulation