More cleanup on how IDataSource is passed around.