corrected typo in description
same logic but follow DRI
after found that the difference is not clear for everybody i added the explanation
fixed security check for subtypes