split C/CL implementations in different files (II).