add primitive collects