Reads and writes properly. Needs to be divided into seperate classes and integrated into selection.