redesigned datatype read/write approach again. datatypes that can be read/written should now have appropriate DataReader and DataWriter classes defined. these are associated to the datatype in an xml file