add function generator