redesign incrementation method (no need to extend it into a c module)