UltraScan itself consists of an extensible C++ class library and a Qt-based multi-threaded graphical user interface (GUI) with independent binaries linking to the UltraScan class library. This system has proven to be the best arrangement to guarantee optimal memory management and robustness. Should multiple modules be running and one of them encounters a fatal error, all other open modules are unaffected and will continue to function normally. The library offers classes for many popular data analysis methods such as van Holde–Weischet (Demeler and van Holde 2004), dc/dt (Stafford 1992), second moment (van Holde 1985; Demeler 2005), c(s) (Schuck 2000), nonlinear and linear least squares optimization (Demeler and Saber 1998), modeling of ASTFEM solutions of the Lamm equation (Cao and Demeler 2005, 2008) by two-dimensional spectrum analysis (Brookes et al. 2006, 2009), by genetic algorithm optimization (Brookes and Demeler 2006, 2007), and by Monte Carlo analysis (Demeler and Brookes 2008).