Copy ctor hidden, use accumulate, use lambdas