Made some progress on CharacterSourceAbstraction