added a swapcase option