add DataSource interface