factored _build into an update_func for collections.add