generate ability