separation of the generalized and the c backend
adding an interface and C pretty printer