add generating functions