all the c stuff