My issue with #2 is that the return value of bar.okay? might change, but with this implementation Foo#okay? won't ever change. Jason