Passing an object would make it more robust to interface change, because an attr of an object could be computed lazily.