changed reflection over the data objects to use public properties, so will now support f# records as well as c# types with public properties