implemented in c skeleton