added isupper and islower