Refactored the datapoint animator to tidy it up a little

Now have a slightly more generic approach