c backend refact, implementing serilizer