base lib for c