More back end finished, front end starting to come together

Endless adapter pattern seems to work now, but the interface for
CachedDataSource needs to be updated to be more intelligent (add a
function to return the number of cached values)