be more defensive with datapoints