This is another step to port away from dataengine. The declarative model will replace the data source in the end.