better allocation (upper triangular)