My attempt at writing re-usable data-structures in C