updated string functions