Added datapoint factories and default impls for long and double, moving code to use factories