is_char_shifted moved to base.py