building C interface