add generate utils