Made some progress on the CharacterSource abstraction.