StackGrapher is written in C++, using Qt and its signal/slot mechanism to provide clean interfaces between classes. .) main() is found in main.cpp .) pow.hpp, mathematics.hpp and precision.hpp contain some utility functions .) The StackGrapher class represents the main window and deals with application-specific issues like loading .csv files and minimizing the graph distortion .) The Grapher class has two main responsibilities: (1) It implements a reusable widget for general purpose graph drawing and can easily be extended to draw other kinds of graphs (e.g. simple line graphs) (2) It is the container (manager) of all individual graphs in the system. Therefore, graphs need to be created and deleted through the Grapher class. .) AbstractGraph is the high-level interface providing just what is needed by Grapher to draw and position individual graphs on the screen .) ContinuousGraph is derived from AbstractGraph and implements helper methods for any kind of graph with regularly increasing x-values (i.e. everything that's not a scatterplot for example) .) UnitGraph is derived from ContinuousGraph and draws the grid .) StackedGraph is derived from ContinuousGraph as well and draws a single band