Lazily instantiating function objects as they are invoked