A CSV-based version