Add `make-datasource` function