added DataPoint abstractions