ugly transition from ~str, will have to rethink later