added char_buffer