text functions update