added swapcase option