avoid allocate new function1 objects