diff --git a/doc/binary_c2.lyx b/doc/binary_c2.lyx
index a1eba77ece1cbd03d2814d946171b8573721779b..f02c8152d83e8eae8b5d104fe9dfbad1c8c1c067 100644
--- a/doc/binary_c2.lyx
+++ b/doc/binary_c2.lyx
@@ -985,7 +985,7 @@ gcc
 status open
 
 \begin_layout Plain Layout
-make
+Perl5
 \end_layout
 
 \end_inset
@@ -995,7 +995,7 @@ make
 status open
 
 \begin_layout Plain Layout
-Perl
+Python3
 \end_layout
 
 \end_inset
@@ -1144,7 +1144,27 @@ BINARY_C
 \end_layout
 
 \begin_layout Itemize
-(Do this once) Set up LD_LIBRARY_PATH in 
+(Do this once) Set up 
+\begin_inset Flex Envvar
+status open
+
+\begin_layout Plain Layout
+LIBRARY_PATH
+\end_layout
+
+\end_inset
+
+ and 
+\begin_inset Flex Envvar
+status open
+
+\begin_layout Plain Layout
+LD_LIBRARY_PATH
+\end_layout
+
+\end_inset
+
+ in 
 \begin_inset Flex File
 status open
 
@@ -1185,6 +1205,15 @@ status open
 export LD_LIBRARY_PATH=$HOME/lib
 \end_layout
 
+\begin_layout Plain Layout
+
+export LIBRARY_PATH=$HOME/lib
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
 \end_inset
 
 and 
@@ -1523,7 +1552,7 @@ cd $BINARY_C
 
 \begin_layout Plain Layout
 
-meson builddir
+meson builddir --buildtype release
 \end_layout
 
 \begin_layout Plain Layout
@@ -1533,7 +1562,7 @@ cd builddir
 
 \begin_layout Plain Layout
 
-ninja
+ninja  
 \end_layout
 
 \begin_layout Plain Layout
@@ -3282,7 +3311,7 @@ status open
 
 \begin_layout Plain Layout
 
-meson builddir
+meson builddir --buildtype release
 \end_layout
 
 \begin_layout Plain Layout
@@ -3292,7 +3321,7 @@ cd builddir
 
 \begin_layout Plain Layout
 
-ninja --buildtype release
+ninja
 \end_layout
 
 \begin_layout Plain Layout
@@ -4332,12 +4361,53 @@ binary_c
 status open
 
 \begin_layout Plain Layout
-meson
+Meson
+\end_layout
+
+\end_inset
+
+ to make
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Consider installing also 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+ccache
 \end_layout
 
 \end_inset
 
- to make a build directory, e.g.,
+ and bash auto-completion for 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+Meson
+\end_layout
+
+\end_inset
+
+ 
+\begin_inset Flex URL
+status open
+
+\begin_layout Plain Layout
+
+https://github.com/ninja-build/ninja/blob/master/misc/bash-completion
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+ a build directory, e.g.,
 \family typewriter
 \series bold
 
@@ -4775,7 +4845,15 @@ ninja
 
 \end_inset
 
-and if you already have a 
+
+\end_layout
+
+\begin_layout Subsubsection
+Existing builddir
+\end_layout
+
+\begin_layout Standard
+If you already have a 
 \begin_inset Flex File
 status open
 
@@ -4785,7 +4863,7 @@ builddir
 
 \end_inset
 
-, do the following,
+, instead of deleting it, do the following,
 \begin_inset listings
 lstparams "language=bash"
 inline false
diff --git a/meson.build b/meson.build
index b1f20029e548586b7a2d1bef43223c7491dc5ba6..abbebb62e232c1732d7298ce98b5579f9ca99c6a 100644
--- a/meson.build
+++ b/meson.build
@@ -29,7 +29,7 @@
 # define the binary_c project
 project(
         'binary_c','c',
-        version : '2.1.3',
+        version : run_command('sh','-c','meson/binary_c_version.sh').stdout().strip(),
         default_options : [
                             'c_std=gnu99',
                           ]
@@ -388,46 +388,94 @@ cflags += warn_flags
 ############################################################
 # make precompiled headers (PCH)
 #
+# PCH is (sort of) supported by Meson, but not really.
+# Meson supports it if you have a pre-made .pch (or .gch
+# for gcc) file, but that's not the case here. We should
+# generate our own pch/gch file on the file, and *also*
+# its dependencies in a pch.d/gch.d file. This is a bit
+# complicated, as you will see below.
+#
 
-if get_option('usepch') == true
+if get_option('usepch') == true 
+
+   _opt = '-O' + get_option('optimization') # required for __OPTIMIZE__
+   
+   # normal dep file
+   _depfile_path = binary_c_src + '/binary_c.h.gch.d'
+   
+   # make a list of incdirs each prefixed by -I
+   _incdirs = []
+   foreach _i : absolute_incdirs
+       _I = '-I' + _i
+       _incdirs += _I
+   endforeach
+   _incdirs += [ '-I.' ]
+
+   # choose your compiler...
+   if compiler.get_id() == 'clang'
+      # clang PCH
+   
+      _pch = 'binary_c.h.pch'
+      use_pch_cflags = [ '-include-pch', _pch ]
+      pch_cflags = [
+                 _opt,
+                 _incdirs,
+                 ]             
+      pch_sourcefiles = [ _pch ]
+      pch_post = [ '-o', _pch ]
+      pch_depfile =  ''
+
+   else
+      # GCC PCH
+   
+      _gch = 'binary_c.h.gch'
+      _gchd = '../src/' + _gch + '.d'
+      use_pch_cflags = [  ] # -include is not required
+      pch_cflags = [ _opt,
+                     _incdirs,
+                     '-MT', 'binary_c.h.gch',
+                     '-MMD',
+                     '-MP',
+                     '-MF', _depfile_path,
+                     '-x', 'c-header'
+                     ]
+      pch_sourcefiles = [ _gch ]
+      cflags += [ '-fpch-deps', '-fpch-preprocess' ]
+      pch_post = [ ]
+      pch_depfile = _gch + '.d'
+   endif
 
-if compiler.get_id() == 'clang'
-   _pch = binary_c_src + '/binary_c.h.pch' # old binary_c
-   _pch = 'binary_c.h.pch'
-   use_pch_cflags = [ '-include-pch', _pch ]
-   _opt = '-O' + get_option('optimization') # required
-   pch_cflags = [ _opt ]
-   pch_sourcefiles = [ 'binary_c.h.pch' ]
-   pch_post = [ '-o', _pch ]
-else
-   _gch = binary_c_src + '/binary_c.h.gch' # old binary_c
-   _gch = 'binary_c.h.gch'
-   use_pch_cflags = [  ] # -include is not required
-   _opt = '-O' + get_option('optimization') # required for __OPTIMIZE_
-   pch_cflags = [ _opt, '-x', 'c-header' ]
-   pch_sourcefiles = [ 'binary_c.h.gch' ]
-   pch_post = [ ]
-endif
 
-# make cflags for pch build
-pch_cflags_array = cflags + pch_cflags
+   # make cflags for pch build
+   pch_cflags_array = cflags + pch_cflags
 
-# append usage flags
-cflags += use_pch_cflags
+   # append usage flags
+   cflags += use_pch_cflags
 
-pch_compiler = compiler.cmd_array() + pch_cflags_array
+   pch_compiler = compiler.cmd_array() + pch_cflags_array
              
-precompiled_headers = custom_target(
+   precompiled_headers = custom_target(
+                       'binary_c.h.pch',
+                       build_by_default : true,
+                       input : ['src/binary_c.h'],
+                       output :  pch_sourcefiles,
+                       command : [ pch_compiler, '-gdwarf-2', '@INPUT@', pch_post ],
+                       depend_files : [h_sourcefiles],
+                       )
+
+else
+   # disable PCH by removing the files it would have generated
+   
+   all_pch_sourcefiles = [ 'binary_c.h.gch', 'binary_c.h.pch' ]
+   precompiled_headers = custom_target(
                     'binary_c.h.pch',
                     build_by_default : true,
                     input : ['src/binary_c.h'],
-                    output :  pch_sourcefiles,
-                    command : [ pch_compiler, '-gdwarf-2', '@INPUT@', pch_post ],
+                    output :  all_pch_sourcefiles,
+                    command : [ 'rm', '-f', all_pch_sourcefiles ],
                     depend_files : [h_sourcefiles],
                     )
 
-else
-  precompiled_headers = []
 endif
 
 
diff --git a/meson/binary_c_version.sh b/meson/binary_c_version.sh
new file mode 100755
index 0000000000000000000000000000000000000000..fd7f45fe131f3a25142b86fcd5eb83079862ddd5
--- /dev/null
+++ b/meson/binary_c_version.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+# script to return the binary_c version number
+grep define\ BINARY_C_VERSION\ \" src/binary_c_version.h | gawk "{print \$3}"|tr -d '"' 
diff --git a/meson/c_sourcefiles.sh b/meson/c_sourcefiles.sh
index 01dc0f584f55cf9577bdce971aa34fe1431239d6..5192c8132571eac2ccff124dcdc16bc02985eef9 100755
--- a/meson/c_sourcefiles.sh
+++ b/meson/c_sourcefiles.sh
@@ -1,4 +1,4 @@
 #!/bin/bash
 
 # list binary_c C source files for meson
-ls src/*.c src/*/*.c
+ls -1 src/*.c src/*/*.c
diff --git a/meson/h_sourcefiles.sh b/meson/h_sourcefiles.sh
index a1707077f5599cc26db497408964ceb193ce8f9c..da72810b17943c4f88d2130e2acdb6ce7478f3dd 100755
--- a/meson/h_sourcefiles.sh
+++ b/meson/h_sourcefiles.sh
@@ -1,4 +1,4 @@
 #!/bin/bash
 
 # list binary_c header source files for meson
-ls src/*.h src/*/*.h 
+ls -1 src/*.h src/*/*.h 
diff --git a/src/binary_c_debug.h b/src/binary_c_debug.h
index 2139922716f9ee9bc31f10740e36aa36ab2d637f..adee6597609a9e2b2f9a9b8da2bee0d6ca25358a 100644
--- a/src/binary_c_debug.h
+++ b/src/binary_c_debug.h
@@ -36,7 +36,7 @@
  *
  * See below for further options.
  */
-#define DEBUG 1
+#define DEBUG 0
 
 /*
  * To remove debugging possibility from the code, globally, hence
@@ -100,7 +100,7 @@
  * this is not shown.
  */
 
-#define Debug_show_expression " sep=%g per=%g J=%g ",stardata->common.orbit.separation,stardata->common.orbit.period,stardata->common.orbit.angular_momentum
+#define Debug_show_expression "  "
 
 //#undef Debug_show_expression
 
diff --git a/src/nucsyn/nucsyn_initial_abundances.c b/src/nucsyn/nucsyn_initial_abundances.c
index f4cc257a1981ddc7f3ad824c5b52ddf9536cf936..56282cf4c8b546ee64ac2cfc301817f647090adb 100644
--- a/src/nucsyn/nucsyn_initial_abundances.c
+++ b/src/nucsyn/nucsyn_initial_abundances.c
@@ -48,6 +48,12 @@ void nucsyn_initial_abundances(Abundance * const X,
      */
     Isotope i;
 
+    Dprint("init abunds\n");
+    Dprint("init abunds stardata=%p\n",stardata);
+    Dprint("init abunds X=%p\n",X);
+    Dprint("init abunds Z=%g\n",Z);
+    Dprint("init abunds mix=%u\n",mix);
+
     Dprint("Set init abunds Z=%g, mix=%u, stardata=%p, X=%p\n",
            Z,
            mix,
diff --git a/src/perl/modules_targz/Binning-0.03.tar.gz b/src/perl/modules_targz/Binning-0.03.tar.gz
index dc41739ae8ab02cb56e36cd2e0273f40162d0c3e..6e030b124ac1ec20b3019ee9ad9fe5b32dcb3b86 100644
Binary files a/src/perl/modules_targz/Binning-0.03.tar.gz and b/src/perl/modules_targz/Binning-0.03.tar.gz differ
diff --git a/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz b/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz
index b6b5e24f96263a3e46181d1700553896e429cd9a..e65e592cdbe89f2cf117ddc8d9cb62e3bff5e9e1 100644
Binary files a/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz and b/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz differ
diff --git a/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz b/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz
index 479b6cbc9e01dd807f7d765543809ba4018257d2..dd0a6397ec08420e152b633d4f303eb41fef7634 100644
Binary files a/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz and b/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz differ
diff --git a/src/perl/modules_targz/Histogram-0.01.tar.gz b/src/perl/modules_targz/Histogram-0.01.tar.gz
index 76999d49ce9e7c55a966e3a1b63e0998bf4b6e06..82bd5dfbc911898bb3aa7caab7468e17e74702a9 100644
Binary files a/src/perl/modules_targz/Histogram-0.01.tar.gz and b/src/perl/modules_targz/Histogram-0.01.tar.gz differ
diff --git a/src/perl/modules_targz/IMF-0.05.tar.gz b/src/perl/modules_targz/IMF-0.05.tar.gz
index f1c5c0c08d615140fd0d384110b1d69ddf3ce188..c8766090b763296655dfb525b13a0e1259ee2a2f 100644
Binary files a/src/perl/modules_targz/IMF-0.05.tar.gz and b/src/perl/modules_targz/IMF-0.05.tar.gz differ
diff --git a/src/perl/modules_targz/Maths_Double-0.01.tar.gz b/src/perl/modules_targz/Maths_Double-0.01.tar.gz
index 88173a8771e4a84cd97dde4a740e36087b01f049..b89be6a8a9ce9a3229dde92956701770011ecd29 100644
Binary files a/src/perl/modules_targz/Maths_Double-0.01.tar.gz and b/src/perl/modules_targz/Maths_Double-0.01.tar.gz differ
diff --git a/src/perl/modules_targz/binary_grid-v2.1.4.tar.gz b/src/perl/modules_targz/binary_grid-v2.1.4.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..7593873caa4a970fcc62d6b27bb58fb8a0d4dd86
Binary files /dev/null and b/src/perl/modules_targz/binary_grid-v2.1.4.tar.gz differ
diff --git a/src/perl/modules_targz/binary_stars-0.05.tar.gz b/src/perl/modules_targz/binary_stars-0.05.tar.gz
index 506f0e5518c19fa1ba9798640b4a209c538aa354..5ec6948f60f9d797edf8e9a419ac6e66e612ac72 100644
Binary files a/src/perl/modules_targz/binary_stars-0.05.tar.gz and b/src/perl/modules_targz/binary_stars-0.05.tar.gz differ
diff --git a/src/perl/modules_targz/cosmology-0.01.tar.gz b/src/perl/modules_targz/cosmology-0.01.tar.gz
index 6fd1f2ba5219d9b5b9c7c37c070b3ae99742fda6..ba670e1ecea4be28b985d8afd0308a1912b9f173 100644
Binary files a/src/perl/modules_targz/cosmology-0.01.tar.gz and b/src/perl/modules_targz/cosmology-0.01.tar.gz differ
diff --git a/src/perl/modules_targz/distribution_functions-0.05.tar.gz b/src/perl/modules_targz/distribution_functions-0.05.tar.gz
index 33676132c58cf214f1adb86213fbf2cb7065e891..80c0a48aa51dabc33c0005cc03b581090be57f66 100644
Binary files a/src/perl/modules_targz/distribution_functions-0.05.tar.gz and b/src/perl/modules_targz/distribution_functions-0.05.tar.gz differ
diff --git a/src/perl/modules_targz/rob_misc-0.16.tar.gz b/src/perl/modules_targz/rob_misc-0.16.tar.gz
index 851580c8ca3f8b1b5c87dcd4066deaceba4c25c8..4a8fe9cf45058f12aab0ec0a98bd756e6ab5e64a 100644
Binary files a/src/perl/modules_targz/rob_misc-0.16.tar.gz and b/src/perl/modules_targz/rob_misc-0.16.tar.gz differ
diff --git a/src/perl/modules_targz/robqueue-0.05.tar.gz b/src/perl/modules_targz/robqueue-0.05.tar.gz
index 369d60b935b856b0d85d7bc973e8ae38f60d8162..b958de0a40d280528d42f35ed972967404ba9545 100644
Binary files a/src/perl/modules_targz/robqueue-0.05.tar.gz and b/src/perl/modules_targz/robqueue-0.05.tar.gz differ
diff --git a/src/perl/modules_targz/spacing_functions-0.02.tar.gz b/src/perl/modules_targz/spacing_functions-0.02.tar.gz
index ebae5f5460bf0b12d9acb76af4850f1aabe4faf0..3b85472346c2fac4fa333857f5272d3369b7b157 100644
Binary files a/src/perl/modules_targz/spacing_functions-0.02.tar.gz and b/src/perl/modules_targz/spacing_functions-0.02.tar.gz differ
diff --git a/src/setup/parse_arguments.c b/src/setup/parse_arguments.c
index 100dd348c0a2c9d428f4f6b2a46ec7f5554de608..98debb16e27b12e66986d0521e647a1d431e5651 100644
--- a/src/setup/parse_arguments.c
+++ b/src/setup/parse_arguments.c
@@ -539,7 +539,7 @@ static void derived_arguments(struct stardata_t * const stardata)
     stardata->star[0].stellar_type = stardata->preferences->initial_stellar_type1;
     stardata->star[1].stellar_type = stardata->preferences->initial_stellar_type2;
     
-    
+    stardata->common.orbit.angular_momentum = 0.0;
     if(Is_not_zero(stardata->star[0].mass) &&
        Is_not_zero(stardata->star[1].mass))
     {
@@ -589,5 +589,5 @@ static void derived_arguments(struct stardata_t * const stardata)
     }
 #endif // NUCSYN && NUCSYN_YIELDS
 
-
+    Dprint("end parse arguments\n");
 }
diff --git a/src/zfuncs/WR_mu.c b/src/zfuncs/WR_mu.c
index 47e142c43453fa4a04d57def7ff347ca79659d13..597317d61690099ee8fcf848021362c6a9a73cd8 100644
--- a/src/zfuncs/WR_mu.c
+++ b/src/zfuncs/WR_mu.c
@@ -1,8 +1,10 @@
+#include "../binary_c.h"
+
 /*
  * The mu factor which determines whether a star is a WR star or not 
  * according to Hurley's prescription
  */
-#include "../binary_c.h"
+
 
 double Pure_function WR_mu(const struct star_t * RESTRICT const star)
 {