first round for string. Unclear how to handle optional arguments
deque, TODO: define input_iterator
add back cimporting const_char