add sub-generator