dsv takes optional constructor function to allow parsing files without headers