add pick and set generic