separate c and cpp helpers