Split ResultantData into 3 classes and made PlainTextDataWriter more 'proper'.