config generation handled in C