re-write of libC