Full code review

I would like to be able to read and write data from various sources, not just HDFS.