to make the fun.base more flexible
update the example