string manipulation library