start C implementation