complete string manipulation