Implementation starting to a look a bit hairy already
The boring part related to reading and writing should be mostly done now.