add generate task