should we pass blocks names instead of datasetnames, shouldn't this cost too much to pass dataset name?