fix most FIXMEs except function pointer