Experimenting with some new design patterns on top of C