added swapcase feature