attr logic reduction