added pure c extension