preliminary C generation. does not run yet