refactor StringUtils