used wrap rather than new class to provide a char source