crude impl of datasource factory, split out mw-data