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