c interfaces an implements