implement generate module