PDF Editor consists of two logical parts - Kernel and GUI. Both use a set of utility classes.
Kernel part is responsible for PDF file manipulation and provides API that is used by GUI.
Graphical user interface.
Various utility classes