generating fewer function objects