REFACTOR: support different delimiters