use my own toolkit::string::join