is returned by-value, why const?