refactoring of requires decorator
adding raising error on got not providing attribute in catalog