diff --git a/pub/CMakeLists.txt.user b/pub/CMakeLists.txt.user
index 8354d60d7c07f946927c78bdf59b503687572a0f..e3aa3eb2e5decfa96a4eca12dd78e211c24b25af 100644
--- a/pub/CMakeLists.txt.user
+++ b/pub/CMakeLists.txt.user
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 3.2.1, 2014-12-17T18:17:17. -->
+<!-- Written by QtCreator 3.2.1, 2014-12-17T18:33:19. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
-  <value type="QByteArray">{17e008da-cc04-4249-8ce9-740ec6318e9c}</value>
+  <value type="QByteArray">{107b79ba-edad-4d3e-98c2-a148eca4fa0a}</value>
  </data>
  <data>
   <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -60,7 +60,7 @@
   <valuemap type="QVariantMap">
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{f94293ca-69a5-4eca-bd40-efd600923fca}</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{5c746291-c845-4b80-bf79-1457c8b5295f}</value>
    <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
    <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
    <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
@@ -69,8 +69,10 @@
     <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/G/f2/pub/qtbuild</value>
     <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
      <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
-      <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">-j7</value>
-      <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>
+      <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">-j4</value>
+      <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
+       <value type="QString">all</value>
+      </valuelist>
       <value type="bool" key="CMakeProjectManager.MakeStep.Clean">false</value>
       <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
       <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
diff --git a/pub/lib/calc.cpp b/pub/lib/calc.cpp
index 33b999d264cdd04f31137993ed210fe6ff8a813a..3aa7da7a097dde437bce447a52248b49f23342da 100644
--- a/pub/lib/calc.cpp
+++ b/pub/lib/calc.cpp
@@ -5,7 +5,7 @@
 //**************************************************************************//
 
 //! \file  calc.cpp
-//! \brief NCalc::Calculator: the command-line pocket calculator
+//! \brief NCalc::Calculator: the command-line pocket calculator.
 
 #include <memory>
 #include <string>
@@ -20,9 +20,11 @@ using namespace std;
 #include "reg.hpp"
 #include "expr.hpp"
 #include "calc.hpp"
-
 #include "xax_lex.hpp"
 
+
+//! Evaluates one expression and displays result.
+
 void NCalc::Calculator( string s ) 
 {
     // cout << "computing '" << s << "'\n";
@@ -51,4 +53,3 @@ void NCalc::Calculator( string s )
     }
     NReg::lastresult = ret;
 }
-
diff --git a/pub/lib/calc.hpp b/pub/lib/calc.hpp
index be2d13636993d6cfcdd4b402bc87566f661c2b9b..d7ce049a74984319dcdf07fcb290cc9a124639dd 100644
--- a/pub/lib/calc.hpp
+++ b/pub/lib/calc.hpp
@@ -5,11 +5,11 @@
 //***************************************************************************//
 
 //! \file  calc.hpp
-//! \brief NCalc::Calculator: the command-line pocket calculator
+//! \brief NCalc::Calculator: the command-line pocket calculator.
+
 
 //! Command-line pocket calculator.
 
 namespace NCalc {
     void Calculator( string expr );
 }
-
diff --git a/pub/lib/commands.cpp b/pub/lib/commands.cpp
index 36429383d5baa1694fa7de70b03c9433d788fd66..6cad84b410f93b41f8e6c03e7ea81e2259a944ff 100644
--- a/pub/lib/commands.cpp
+++ b/pub/lib/commands.cpp
@@ -5,7 +5,7 @@
 //**************************************************************************//
 
 //! \file  commands.cpp
-//! \brief fridaCommand: main level commands
+//! \brief Function fridaCommand: executes one main-level command.
 
 
 #include <cstring>
@@ -39,7 +39,7 @@
 #include "special.hpp"
 
 
-//! Try interpreting cmd as a Frida command.
+//! Executes cmd if is a Frida command, and returns true when successful.
 
 bool fridaCommand( string cmd )
 {
@@ -594,4 +594,3 @@ bool fridaCommand( string cmd )
 
     return true;
 }
-
diff --git a/pub/lib/commands.hpp b/pub/lib/commands.hpp
index 3f14feaa6666ff5926b0a60fbb6407c0eeb135c8..0a3563459f8dbe12ac66fba68ed5d03abb06fdc0 100644
--- a/pub/lib/commands.hpp
+++ b/pub/lib/commands.hpp
@@ -5,7 +5,6 @@
 //**************************************************************************//
 
 //! \file  commands.hpp
-//! \brief fridaCommand: main level commands
+//! \brief Function fridaCommand: executes one main-level command.
 
 bool fridaCommand( string cmd );
-
diff --git a/pub/lib/curve.cpp b/pub/lib/curve.cpp
index cdb9ade11353a749b278a1ed74d5d97723052aa2..245849409318ff457ddde41936e188694db92172 100644
--- a/pub/lib/curve.cpp
+++ b/pub/lib/curve.cpp
@@ -25,11 +25,13 @@
 
 using boost::format;
 
+
 //****************************************************************************//
 //* Create curve file                                                        *//
 //****************************************************************************//
 
-//! Create curve files for given data files.
+
+//! Queries defining function, and creates curve files for given data files.
 
 void NCurveFile::createFitcurve()
 {
@@ -60,7 +62,8 @@ void NCurveFile::createFitcurve()
     }
 }
 
-//! Create one curve file, refering to no data file.
+
+//! Queries defining function, and creates one curve file, refering to no data.
 
 void NCurveFile::createFreecurve()
 {
@@ -82,11 +85,13 @@ void NCurveFile::createFreecurve()
     NOlm::mem_store( fout );
 }
 
+
 //****************************************************************************//
 //* Modify curve file                                                        *//
 //****************************************************************************//
 
-//! Modify the defining function expression.
+
+//! Queries and sets defining function expression.
 
 void NCurveFile::changeExpr()
 {
@@ -114,7 +119,8 @@ void NCurveFile::changeExpr()
     }
 }
 
-//! Set data file or convolution file.
+
+//! Queries and sets data file or convolution file reference.
 
 void NCurveFile::setFileReference( const string& which )
 // which = "d"  set data file
@@ -165,7 +171,8 @@ void NCurveFile::setFileReference( const string& which )
     }
 }
 
-//! Fix or unfix curve parameters.
+
+//! Queries parameters to Fix or unfix.
 
 void NCurveFile::setFixed( bool fix )
 {
@@ -188,7 +195,8 @@ void NCurveFile::setFixed( bool fix )
     }
 }
 
-//! Set fit range restrictions.
+
+//! Queries and sets fit range restrictions.
 
 void NCurveFile::changeRange()
 {
@@ -208,7 +216,8 @@ void NCurveFile::changeRange()
     }
 }
 
-//! Set auxiliary parameters (weighing, plot grid).
+
+//! Sets switches as given through command string.
 
 void NCurveFile::setProperties( string which )
 {
@@ -234,11 +243,13 @@ void NCurveFile::setProperties( string which )
     }
 }
 
+
 //****************************************************************************//
 //* Parameter operations                                                     *//
 //****************************************************************************//
 
-//! For each curve file, query new values for all parameters.
+
+//! For each curve file, queries new values for all parameters.
 
 void NCurveFile::ParsLoop()
 {
@@ -250,7 +261,7 @@ void NCurveFile::ParsLoop()
 }
 
 
-//! Take absolute values of certain parameters.
+//! Queries parameters to set to absolute values.
 
 void NCurveFile::ParsAbs()
 {
@@ -271,7 +282,7 @@ void NCurveFile::ParsAbs()
     }
 }
 
-//! Copy parameters from another curve.
+//! Queries parameters to copy from another curve.
 
 void NCurveFile::ParsCopy()
 {
@@ -306,7 +317,7 @@ void NCurveFile::ParsCopy()
     }
 }
 
-//! Display parameter list for set of online curves.
+//! Displays parameter list.
 
 void NCurveFile::showPar()
 {
@@ -315,7 +326,7 @@ void NCurveFile::showPar()
         cout << fin->pInfoCat();
 }
 
-//! Lookup data file and spectrum to be used as resolution.
+//! Sets resolution file reference *sv, *kv, *jv.
 
 void NCurveFile::getConv( PSpec *sv, int *kv, int *jv, int k, int j )
 {
@@ -340,4 +351,3 @@ void NCurveFile::getConv( PSpec *sv, int *kv, int *jv, int k, int j )
             S(*kv) + ": number of spectra does not match";
     *sv = fv->VS(*jv);
 }
-
diff --git a/pub/lib/curve.hpp b/pub/lib/curve.hpp
index ed71fd68de57d25224db3cc245f1ce62fc881c5f..b3e250d654fd2458ee3d48e912dd05f244f4ee2e 100644
--- a/pub/lib/curve.hpp
+++ b/pub/lib/curve.hpp
@@ -5,9 +5,10 @@
 //***************************************************************************//
 
 //! \file  curve.hpp
-//! \brief NCurveFile: create, inspect, modify curve files.
+//! \brief NCurveFile: Methods to create, inspect, modify curve files.
 
-//! Create, inspect, modify curve files.
+
+//! Methods to create, inspect, modify curve files.
 
 namespace NCurveFile {
 
@@ -27,4 +28,3 @@ namespace NCurveFile {
 
     void getConv( PSpec *sv, int *kv, int *jv, int k, int j );
 }
-
diff --git a/pub/lib/dualplot.cpp b/pub/lib/dualplot.cpp
index 1236a9e000738295f472650d5dda831006391438..7efaf8f412614fe03062aeccb663eff9951e9b4a 100644
--- a/pub/lib/dualplot.cpp
+++ b/pub/lib/dualplot.cpp
@@ -5,7 +5,7 @@
 //***************************************************************************//
 
 //! \file  dualplot.cpp
-//! \brief collection NPlot of plot frames CPlot
+//! \brief Collection NPlot of plot frames CPlot.
 
 #include <cstdio>
 #include <cmath>
diff --git a/pub/lib/dualplot.hpp b/pub/lib/dualplot.hpp
index e97dac5ef6bd1c286cd69dd316e3d69beb54ecb0..7b77fcb6d4aa286f57a69dbb506dfc0bf4a21321 100644
--- a/pub/lib/dualplot.hpp
+++ b/pub/lib/dualplot.hpp
@@ -5,22 +5,24 @@
 //***************************************************************************//
 
 //! \file  dualplot.hpp
-//! \brief collection NPlot of plot frames CPlot
+//! \brief Collection NPlot of plot frames CPlot.
 
 #include "axis.hpp"
 
-//! One plot window.
+
+//! One plot frame.
 
 class CPlot {
  public:
-    int iPlot;             ///< The index of this window in NPloWin::Plots.
-    CAxis X, Y;
+    int iPlot;             //!< The index of this frame in NPloWin::Plots.
+    CAxis X;               //!< Limits, log flag &c for x axis.
+    CAxis Y;               //!< Limits, log flag &c for y axis.
     // For data plotting:
-    int maxpoints;
-    bool with_errors;
+    int maxpoints;         //!< Maximum # points to be plotted without reduction.
+    bool with_errors;      //!< Plot error bars?
     // For curve plotting:
-    int equipoints;
-    bool refine;
+    int equipoints;        //!< Start curve plot with this # grid points.
+    bool refine;           //!< Refine curve plot when appropriate?
 
     CPlot( int _iPlot, bool _logx, bool _logy );
 
@@ -46,28 +48,29 @@ class CPlot {
     string info() const;
 
 private:
-    int gp_fifo;
-    int gp_fno;
-    string gp_fnames;
+    // TODO: some of this could be made local static, if class instances
+    // are created anew instead of calling clearFrame().
+    int gp_fifo;      //!< Pipe to Gnuplot.
+    int gp_fno;       //!< Number of Gnuplot input file.
+    string gp_fnames; //!< List of currently plotted Gnuplot input file names.
 
-    int ps_fnum; // file
-    int ps_snum; // spectrum
-    int ps_pnum; // spectrum with pstyle
-    int ps_cnum; // spectrum with cstyle
+    int ps_fnum;      //!< Postscript output file number.
+    int ps_snum;      //!< Slice number in Postscript file.
+    int ps_pnum;      //!< Spectrum number, for setting pstyle.
+    int ps_cnum;      //!< Curve number, for setting cstyle.
     void ps_ticktack( const vector<double>& Tacks, int ntpt,
                       const double *ticklim, const CAxis *A );
-    vector<string> ps_Doc;
-    vector<string> ps_accu; // future output is accumulated here
+    vector<string> ps_accu; //!< Main Postscript cache.
+    vector<string> ps_Doc;  //!< Special Postscript cache for doc lines ?.
 };
 
 
 //! Direct access to plot windows collection.
 
 namespace NPloWin {
-    extern vector<CPlot*> Plots; ///< This vector holds all plot windows.
-    extern int nPlot;           ///< Must be kept equal to Plots.size().
-    extern int iPlot;           ///< Index of currently active plot window.
+    extern vector<CPlot*> Plots; //!< This vector holds all plot windows.
+    extern int nPlot;            //!< Must be kept equal to Plots.size().
+    extern int iPlot;            //!< Index of currently active plot window.
 
     void initialize();
 }
-
diff --git a/pub/lib/edif.hpp b/pub/lib/edif.hpp
index 16ccf0e25141c27bc18138d322ffce2afcfb6c2b..65e30a1e2c39264526a152e2af344bf3e6be5f21 100644
--- a/pub/lib/edif.hpp
+++ b/pub/lib/edif.hpp
@@ -5,9 +5,10 @@
 //***************************************************************************//
 
 //! \file  edif.hpp
-//! \brief NEdif: inspect and edit data and metadata
+//! \brief NEdif: Methods to inspect and edit data and metadata.
 
-//! Inspect and edit data and metadata.
+
+//! Methods to inspect and edit data and metadata.
 
 namespace NEdif {
     void showFiles();
@@ -21,4 +22,3 @@ namespace NEdif {
     void editDoc();
     void delNumpar();
 }
-
diff --git a/pub/lib/expr.hpp b/pub/lib/expr.hpp
index a1d0a8d7788916f79878973b8efddafe3a9778d8..857de1d2b6b0a672d2d080bd8f9b0a5e27b16b89 100644
--- a/pub/lib/expr.hpp
+++ b/pub/lib/expr.hpp
@@ -5,7 +5,7 @@
 //***************************************************************************//
 
 //! \file  expr.hpp
-//! \brief Expressions are parsed into CRef, CContext, CResult, virtual CNode
+//! \brief Expressions are parsed into CRef, CContext, CResult, virtual CNode.
 
 #include <boost/shared_ptr.hpp>
 
diff --git a/pub/lib/file_in.hpp b/pub/lib/file_in.hpp
index 4a45b0f79fb18d4c6f8b8ad5e06a9dc63884daca..e0b0f3e7912c92980cbfe744173b33102f6838c5 100644
--- a/pub/lib/file_in.hpp
+++ b/pub/lib/file_in.hpp
@@ -7,9 +7,9 @@
 //! \file  file_in.hpp
 //! \brief NFileIn: load files
 
-//! Load files. With support for various old formats.
+
+//! Method to load files, with support for various old formats.
 
 namespace NFileIn {
     void load(void);
 }
-
diff --git a/pub/lib/file_out.hpp b/pub/lib/file_out.hpp
index d6de264d53c850eec43b84ded206ecc066a044a2..49ad87f8bcb520c33c12dac1226a2057e6d12f18 100644
--- a/pub/lib/file_out.hpp
+++ b/pub/lib/file_out.hpp
@@ -7,9 +7,9 @@
 //! \file  file_out.hpp
 //! \brief NFileOut: Save files
 
-//! Save files.
+
+//! Method to save files.
 
 namespace NFileOut {
     void save( string fmt, bool allow_overwrite=false );
 }
-
diff --git a/pub/lib/fit.hpp b/pub/lib/fit.hpp
index 4383988237fc22454cad9c00286ba2288f8ca125..385f84237892b9515ce672d826746a9a7f2c8026 100644
--- a/pub/lib/fit.hpp
+++ b/pub/lib/fit.hpp
@@ -7,10 +7,10 @@
 //! \file  fit.hpp
 //! \brief NCurveFit: fit a curve file to a data file
 
-//! Fit a curve file to a data file.
+
+//! Methods related to fitting.
 
 namespace NCurveFit {
     void setFitTuningPars( string which );
     void fit( bool _allow_slow_conv );
 }
-
diff --git a/pub/lib/geni.cpp b/pub/lib/geni.cpp
index 3fd9be8abd0811d116aab6a6874dd9e0b2f1fcc2..05e2df6e5aa69f33e6db69ad98d56099a45fcb79 100644
--- a/pub/lib/geni.cpp
+++ b/pub/lib/geni.cpp
@@ -243,14 +243,14 @@ namespace NGeni { // internals:
     vector<const CGeni*> glist;    // sorted array, for help text
 }
 
-CGeni::CGeni( string _txt, int _narg, string _def,
+CGeni::CGeni( string _name, int _narg, string _def,
               geni_eval _eval, string _com )
-    : txt(_txt), narg(_narg), eval(_eval), com(_com)
+    : name(_name), narg(_narg), eval(_eval), com(_com)
 {
     vector<string> def_expr;
     triv::split( _def, def_expr, "," );
     if ( def_expr.size()!=narg )
-        throw "BUG: invalid default "+_def+" for CGeni "+txt;
+        throw "BUG: invalid default "+_def+" for CGeni "+name;
     def_arg.resize(narg);
     for ( int iarg=0; iarg<narg; ++iarg )
         def_arg[iarg] = user_xaxparse( def_expr[iarg].c_str() );
@@ -264,7 +264,7 @@ const CGeni* NGeni::find( string key )
 
 void CGeni::register_me() const
 {
-    NGeni::gmap.insert( make_pair( txt, this ) );
+    NGeni::gmap.insert( make_pair( name, this ) );
     NGeni::glist.push_back( this );
 }
 
@@ -272,7 +272,7 @@ void NGeni::display_genis()
 {
     cout << "Generalized integrals:\n";
     for( auto g = glist.begin(); g!=glist.end(); ++g ) {
-        string s1 = (*g)->txt + "(a";
+        string s1 = (*g)->name + "(a";
         if( (*g)->narg>1 )
             s1 += ",b";
         s1 += ")";
diff --git a/pub/lib/geni.hpp b/pub/lib/geni.hpp
index af741e7bfbfcb936acc4f0c8e42f311bd3638aa4..2b0dff2af29db3d170e855485db7d031836f073d 100644
--- a/pub/lib/geni.hpp
+++ b/pub/lib/geni.hpp
@@ -5,19 +5,22 @@
 //***************************************************************************//
 
 //! \file  geni.hpp
-//! \brief collection NGeni of generalized integral wrappers CGeni
+//! \brief Collection NGeni of generalized integral wrappers CGeni.
+
 
 typedef boost::shared_ptr<class CResult> PResult;
 
+
 //!  Function type: Evaluate generalized integral for given vector(s).
 
 typedef void (*geni_eval) (double*, double*, int, const vector<PResult>& );
 
+
 //! A wrapper holding a functional.
 
 class CGeni {
  public:
-    string txt;
+    string name;
     int narg;
     geni_eval eval;
     string com;
@@ -29,6 +32,7 @@ class CGeni {
     void register_me() const;
 };
 
+
 //! Collection of function wrappers CFunc
 
 namespace NGeni { // public (short) interface
diff --git a/pub/lib/node.cpp b/pub/lib/node.cpp
index f394f708aa98a770227d70c40d7f056155bf5461..877116b846b3c41be9862c142bc1a2445f111136 100644
--- a/pub/lib/node.cpp
+++ b/pub/lib/node.cpp
@@ -208,6 +208,8 @@ void CNodeFun::set_coord( CCoord& ret, int k ) const {
         ret = fu->coord( r+0, r+1, r+2 );
 }
 
+//! Returns string representation of this node.
+
 string CNodeFun::tree_info() const
 {
     string ret = fun->txt + "(";
@@ -234,7 +236,7 @@ CNodeGeni::CNodeGeni( const class CGeni *_geni, PNode _a0 )
     : narg(1), geni(_geni)
 {
     if ( geni->narg!=1 )
-        throw "syntax error: generalized integral '" + geni->txt + "' needs " +
+        throw "syntax error: generalized integral '" + geni->name + "' needs " +
             S(geni->narg) + " arguments, not 1";
     arg.resize(narg);
     arg[0] = _a0;
@@ -244,7 +246,7 @@ CNodeGeni::CNodeGeni( const class CGeni *_geni, PNode _a0, PNode _a1 )
     : narg(2), geni(_geni)
 {
     if ( geni->narg!=2 )
-        throw "syntax error: generalized integral '" + geni->txt + "' needs " +
+        throw "syntax error: generalized integral '" + geni->name + "' needs " +
             S(geni->narg) + " arguments, not 2";
     arg.resize(narg);
     arg[0] = _a0;
@@ -332,9 +334,12 @@ void CNodeGeni::set_coord( CCoord& ret, int k ) const {
 //*         ret = fu->coord( r+0, r+1, r+2 );
 }
 
+
+//! Returns string representation of this node.
+
 string CNodeGeni::tree_info() const
 {
-    string ret = geni->txt+"(..)";
+    string ret = geni->name+"(";
     for ( int iarg=0; iarg<narg; ++iarg )
         ret += arg[iarg]->tree_info() + (iarg<narg-1 ? "," : ")" );
     return ret;
@@ -435,6 +440,8 @@ void CNodeCvin::set_coord( CCoord& ret, int k ) const {
 //*         ret = fu->coord( r+0, r+1, r+2 );
 }
 
+//! Returns string representation of this node.
+
 string CNodeCvin::tree_info() const
 {
     string ret = cvin->txt+"(..)";
@@ -719,6 +726,8 @@ void CNodeIva::set_coord( CCoord& ret, int k_in ) const
     }
 }
 
+//! Returns string representation of this node.
+
 string CNodeIva::tree_info() const
 {
     return "ref[" + var->var_info() + "]";