Merging Bruce's CSV implementation to master