# Status of this document: :no_entry: Work in progress
The qucs-gui code base is not easy to walk through.
As I wanted to understand how it works, I started to "reverse engineer" it. My focus is on component definition, library management and how the netlist and the simulation commands are generated.
You will find in this document a somewhat detailed description of the [Component class](/1-Qucs-code-analysis/2.0-component-class), the [Qucs netlister code](/1-Qucs-code-analysis/3.1-Qucs-Netlister), and the specifics added for [Spice support](/1-Qucs-code-analysis/3.2-Spice-Netlister)