added C function call support