Freezing the returned object seems useless to me, since a new object is returned with each invocation.