json datasource refactor