Add generator function