supports different delimiters