optimized funcall