Start to tidy up datasource-juggler implementation (WIP)

/to @ritch