size should not be fixed, use the value from size(I)