split into different c file