Sometimes you have an accessor method like this (which I support), but then sometimes you have stuff like:
array[i].method(dog)[method2()].method3() which can be a bit overwhelming. It might be worth breaking out some of those into methods like this so we can document the purpose? Or maybe just documenting them in general, as it can be difficult to fully understand them.