add more efficient update method (doesn't send model updates for every item)