Updating description with timeline

I have a large number of data samples of objects moving around and I want to add location and description samples to each object (entity) so that I can use the timeline to see them smoothly move forward/backward.

Most importantly, I need the description to update to whatever it was at the time when you move the timeline back to.

I have my front-end receiving the json data fine, and I can see how to put the locations in from the Interpolation example using SampledPositionProperty.

I am stuck on two things:
1. How do I have the entitys' descriptions change when you drag the timeline back/forwards?
2. How do I constrain the timeline's range to the first/last data points, but have its stop constraint move with the clock? So, you should always be able to drag the timeline up to the current time, but no further.

In case anyone sees this later and wants to know how to do this, you can use:

var description_composite = new Cesium.TimeIntervalCollectionProperty();

Use that as the desctiption field for the entity.

And then add descriptions to it like this:

description_composite.intervals.addInterval(new Cesium.TimeInterval({
                    start : time,
                    stop : next_time,
                    isStartIncluded : true,
                    isStopIncluded : true,
                    data : description_string
                }));