And coming back to the specialized version of walkLength: in the case where joiner does not implement save, should I still allow the specialized version? (and in this case do what: consume the range, make a copy of "this" and hope for the best, something else?) Maverick Chardet