Changes in Version 1.1.8
  o Fixed DoNotPlot = TRUE causing an error in multigroup models (#50)
  o Fixed multigroup models with different variables per group crashing due to dimnames mismatch (#38)
  o Fixed logistic regression and other non-gaussian GLMs crashing due to standardize() (#43)
  o Fixed OpenMx models crashing with "replacement has length zero" for M matrix standardization (#35)
  o Fixed layoutSplit causing "logical subscript too long" error (#15)
  o Covariance matrices from lavaan now use lavTech with add.labels=TRUE for proper per-group naming

Changes in Version 1.1.5
  o Small change to a link used in an example

Changes in Version 1.1.4
  o Fixed issues with new lavaan version
  o Small fix for CRAN

Changes in Version 1.1.3
  o the 'ramModel' function now supports meanstructure with the 'M' argument.
  o Fixed an issue with lavaan

Changes in Version 1.1.1
  o regsem and cv_regsem support added, thanks to Myrthe Veenman and Jason Nak!

Changes in Version 1.1
  o Fixed a bug with lavaan input
  o Fixed a bug with OpenMx 2 input
  o The 'mplusStd' argument of semPlotModel can now be used to specify standardization of mplus models
  o Fixed a bug related to model constraints
  o Several updates to accomidate new CRAN checks

Changes in Version 1.0.1
  o Fixed a dependency related bug causing examples to crash.

Changes in Version 1.0.0

New features:
    o Added the argument 'curveAdjacent' to also curve the covariances between two adjacent nodes as curved edges.
    o A frequently asked question is how to decrease the font size of edge labels. This can be done via the 'edge.label.cex' argument of the qgraph backend. But because this was not clear the argument now has been added to semPaths as well. The default is slightly smaller than the original qgraph default: 0.6 versus 1.
    o Added the argument 'cardinal' that controls which edges will be linked to cardinal sides of a node. With this argument the behavior of many path diagram drawing programs can be mirrored. 
    o Added the 'equalizeManifests' argument to equalize the spacing between manifest variables in the 'tree1' layout.
    o Added the 'covAtResiduals' argument that controls if covariances should be linked to residuals rather than nodes themselves if style="lisrel"
    o Added the 'bifactor' argument to create bifactor layouts. Only supported with layouts 'tree2', 'tree3', 'circle2' and 'circle3'.
   o optimizeLatRes has been improved
   o Added 'optimizePoints' arguments that can be given a vector of radians residuals can optimize to if optimizeLatRes = TRUE.

Changes:
    o The argument curvePivot now defaults to FALSE, causing covariances by default to once again be drawn by circular curved edges.
    o A list of usefull qgraph arguments that can be used in semPaths is now listed in the semPaths help page.
    o 'mixCols' renamed to 'inheritColor'
    o The color argument can now be assined a list for assignng specific colors to all manifests, latents or intercepts
    o Some improvements to 'semCors'


Bug fixes:
    o Fixed a bug where using style='lisrel' did not correctly curve covariances between latents.
    o Fixed a bug where 'layoutSplit' resulted in a crash if there were only two connections in the structural model and "spring" layout was used.


Changes in Version 0.3.3
    o Lavaan model syntax is now supported as input
    o Numeric edge labels without using whatLabels argument are now correctly abbreviated
    o Several small fixes

Changes in Version 0.3.2
  o New features
    o Matrix model functionality:
      o Added 'semMatrixAlgebra' to easily perform matrix algebra on any semPlot input object.
      o Added 'modelMatrices' to obtain model matrices of LISREL, Mplus and RAM modeling frameworks of any input to semPlot.
      o Added 'exoVar' and 'exoCov' arguments that can be used to not display variances or covariances of truly exogenous variables (no incoming directed edges)
  o Added 'tree3' and 'circle3' layouts, based on Boker, S. M., McArdle, J. J., & Neale, M. (2002). An algorithm for the hierarchical organization of path diagrams and calculation of components of expected covariance. Structural Equation Modeling, 9(2), 174-194.

  o Major changes
    o Added edgeLabels and nodeLabels arguments to manually overwrite edge and node labels, in the order they appear in the RAM and Vars elements of the 'semPlotModel' that is created internally. In addition to the qgraph change that these can now be assigned lists including expressions it should now be easier to add Greek letters.
    o  MplusAutomation is no longer imported but moved to suggests list. This makes sure that the Tcl/Tk interface is not loaded on loading semPlot and as a result makes sure that semPlot does not result in crashes on Mac computers where Tcl/Tk is not installed.
    o 'style' now defaults to "lisrel" if the input is a Lisrel model.
    o 'style="lisrel"' will now default exoVar to FALSE.
    o Changed the name of slot RAM to Pars in semPlotModel class.
    o Two-level multilevel structures is now supported
      o Currently this works for Mplus input only.
      o Only random intercepts are supported, not random slopes.
      o Thresholds are shown on the within level rather than the between level.

  o New arguments to semPaths:
    o Added argument thresholdSize to control the size of threshold bars
    o Added 'levels' argument. This argument can be used to control the spacing between levels (e.g., exogenous latents) of tree and circle layouts.
    o Added nDigits argument to control the number of digits used in rounding for labels.
    o Added 'centerLevels' argument for tree2 layout, to center horizontal levels.
    o Added 'panelGroups' argument to automatically create a panel plot of multiple group models.
    o The 'layoutSplit' argument can be used to split computing of layout between structural and measurment models. This is very useful in more complicated models where the structural part is best shown by using a spring layout.
    o Added the 'intAtSide' argument to control if intercepts should be plotted to the side of manifest nodes or at the bottom/top. Defaults only to FALSE if 'residuals=FALSE'.
    o Added 'nDigits' argument to control rounding of numeric values.

  o Minor changes
    o Thresholds are now plotted via qgraph
    o Changed argument threshold.color to thresholdColor
    o 'qgraph' is no longer on the depends list but imported instead.
    o 'as.expression' now defaults to "edges" if the input is a lisrel model. 
    o 'semPlotModel' for lisrel modes can now use dots to send arguments to 'lisrelModel'
    o Added 'reduce' argument to lisrelModel that controls if variables that are named the same should be treated as the same variable.
    o Shape, width and height of manifest, latent and constant variables can now be set.
    o Mplus input now supports the | operator.

  o Bug fixes
    o Fixed a bug where numeric labels where abbreviated, causing erratic behavior on the labels.
    o Fixed a bug where models with single indicator latent variables caused an error.
    o Numerous small bugfixes and improvements
    o Fixed a bug where variable names in mplux models containing BY, WITH or ON caused unexpected behavior.
    o Assigning a matrix to the layout argument of semPaths will no longer cause a bunch or warnings.


Changes in Version 0.3
  o First submit to CRAN.
