respond_to?
raise on respond_to changes
don't pass nil elements into Hash[]
some respond_to? fixes