cache method calls as valid methods if seen previously to avoid can()
overhead?

test suite
