updated StringMagic