C99 compliant function pointer casting
C99 compliant function pointer casting
WIP
merged