add abaility to know required attributes on a generic