support respond_to?