added swapcase()