introduce DataSource + Command