AFDP-178: pluggable data source

I think this is ready to merge.  Please review, comment, and merge if desired.