TODO:

- enable enhance to generate C code
- look out for recursive naming (2 widgets with same name)

