add scatter-gather