rely on respond_to? rather on public_methods in method_defined?