add filter; support user defined separator