support custom separator