diff --git a/ShellB3/shallbethree.sh b/ShellB3/shallbethree.sh
index 0e7ddc442a2c46d168b9ebe147ef3c159668ff52..a5a7bcb45f0c46d93319157f04be9fbb6ed8a707 100755
--- a/ShellB3/shallbethree.sh
+++ b/ShellB3/shallbethree.sh
@@ -2185,20 +2185,18 @@ mk_png() {
   useSysCheck USE_SYS_PNG && return 0
   #_find_cots PNG bin/libpng-config $BASE $COTS_HOME && return 0
   _find_cots ZLIB include/zlib.h $BASE $COTS_HOME ${SYSROOT}/usr || oops "PNG requires zlib"
+  _find_cots_lib ZLIB libz $ZLIB || oops "PNG requires zlib"
   # PNGlib, you are a yutz.
-  name=libpng
-  tarball=src/optional/libpng-${PNGVER}.tar.gz
-  buildir=libpng-${PNGVER}
-  echo unpacking ${name}...
-  tar xf ${tarball} -C build || oops "could not unpack ${name} from ${tarball}"
-  [ -e ${ZLIB}/lib/libz.a ] && sed -i.bak -e "s:-lz:${ZLIB}/lib/libz.a:g" build/${buildir}/configure
-  echo "building ${name} for $BASE"
-  (cd build/${buildir} \
-   && export CFLAGS="-I$ZLIB/include -L$ZLIB/lib $CFLAGS" \
-   && ./configure --prefix=$BASE ${SB3BUILDFLAGS} --with-pic --with-pkgconfigdir=${BASE}/lib/pkgconfig --with-zlib-prefix=$ZLIB "$@" \
-   && make \
-   && MAKEFLAGS="" make install ) \
-   || oops "${name} build failed"
+
+  make_script libpng <<SCRIPT
+if [ "$(basename ${ZLIBLIBFILE})" == "libz.a" ] ; then
+sed -i.bak -e "s:-lz:${ZLIBLIBFILE}:g" configure
+fi
+SCRIPT
+
+  CFLAGS="-I$ZLIB/include -L$ZLIBLIBDIR $CFLAGS" \
+    _configure_make_install libpng src/optional/libpng-${PNGVER}.tar.gz libpng-${PNGVER} \
+    --with-pic --with-pkgconfigdir=${BASE}/lib/pkgconfig --with-zlib-prefix=$ZLIB "$@"
 }
 
 _mk_harfbuzz() {
@@ -2533,6 +2531,10 @@ mk_atlas() { # FIXME: this does not complete
   #oops "ATLAS build is nonfunctional"
   resume_tracker && return 0
   #test -f $BASE/build/lapack-${LAPACKVER}/liblapack.a || oops "need to run mk_lapack prior to mk_atlas"
+
+  DESTDIR=$BASE _configure_make_install ATLAS src/optional/atlas${ATLASVER}.tar.bz2 ATLAS  -Fa alg -fPIC
+  return $?
+
   echo unpacking ATLAS...
   rm -rf build/ATLAS
   tar jxf src/optional/atlas${ATLASVER}.tar.bz2 -C build || oops "could not unpack ATLAS"
@@ -2749,34 +2751,23 @@ mk_pyproj() {
 
 mk_jasper() {
   resume_tracker && return 0
-  rm -rf build/jasper-${JASPERVER}
-  echo unpacking jasper...
-  (cd build && unzip ../src/jasper-${JASPERVER}*.zip) \
-   || oops "could not unpack jasper from src/"
-  echo "building jasper for $BASE"
-  (cd build/jasper-${JASPERVER} \
-   && ./configure --prefix=$BASE --disable-libjpeg ${SB3BUILDFLAGS} \
-   && make \
-   && MAKEFLAGS="" make install ) \
-   || oops "jasper build failed"
+
+  _configure_make_install jasper src/jasper-${JASPERVER}*.zip jasper-${JASPERVER} --disable-libjpeg
 }
 
 mk_gribapi() {
   resume_tracker && return 0
-  echo unpacking grib_api...
-  tar zxf src/grib_api-${GRIBAPIVER}.tar.gz -C build || oops "could not unpack grib_api from src/"
-  echo "building grib_api for $BASE"
+ 
+  #FOR SOME REASON, python must be configured and semi-work, even tho we don't want it. unset PYTHON to let it use the system's
+
   if [ -z "$CC" ] ; then
     MYCC=gcc
   else
     MYCC=$CC
-  fi #FOR SOME REASON, python must be configured and semi-work, even tho we don't want it. unset PYTHON to let it use the system's
-  (cd build/grib_api-${GRIBAPIVER} \
-   && export CC="${MYCC} ${CFLAGS}" && unset PYTHON \
-   && ./configure --disable-fortran --disable-python ${SB3BUILDFLAGS}  --prefix=$BASE --with-jasper=$BASE \
-   && make \
-   && MAKEFLAGS="" make install ) \
-   || oops "gribapi build failed"
+  fi
+
+  CC="${MYCC} ${CFLAGS}" PYTHON="" _configure_make_install grib_api src/grib_api-${GRIBAPIVER}.tar.gz grib_api-${GRIBAPIVER}/ \
+      --disable-python --with-jasper=$BASE
 }
 
 mk_pygrib() {
@@ -3310,17 +3301,11 @@ mk_netcdf4cxx() {
   _find_cots HDF4 include/hdf.h $BASE $COTS_HOME || echo "WARNING: netcdf4cxx will build without HDF4"
   _find_cots NETCDF4 include/netcdf.h $BASE $COTS_HOME || oops "netcdf4cxx requires netcdf4"
   _find_cots ZLIB include/zlib.h $BASE $COTS_HOME /usr || oops "netcdf4cxx requires zlib"
-  echo "unpacking netcdf4cxx..."
-  tar xf src/optional/netcdf-cxx4-${CDF4CXXVER}.tar* -C build || oops "could not unpack netcdf4 from src/"
-  echo "building netcdf4 for $BASE"
-  (set -x ; cd build/netcdf-cxx4-${CDF4CXXVER} \
-   && export CPPFLAGS="-I${HDF5}/include -I${ZLIB}/include -I${SZLIB}/include -I${JPEG}/include -I${NETCDF4}/include -I${HDF4}/include -fno-strict-aliasing" \
-   && export LDFLAGS="-L${HDF5}/lib -L${ZLIB}/lib -L${HDF4}/lib -L${NETCDF4}/lib -L${SZLIB}/lib -L${JPEG}/lib $SB3FLAGS" \
-   && ./configure --prefix=$BASE --enable-static --enable-shared --disable-doxygen --with-pic \
-   && make \
-   && MAKEFLAGS="" make install ) \
-   || oops "netcdf4cxx build failed"
-  # fix RPATH forcing issue
+
+  CPPFLAGS="-I${HDF5}/include -I${ZLIB}/include -I${SZLIB}/include -I${JPEG}/include -I${NETCDF4}/include -I${HDF4}/include -fno-strict-aliasing" \
+    LDFLAGS="-L${HDF5}/lib -L${ZLIB}/lib -L${HDF4}/lib -L${NETCDF4}/lib -L${SZLIB}/lib -L${JPEG}/lib $SB3FLAGS" \
+    _configure_make_install netcdf-cxx4 src/optional/netcdf-cxx4-${CDF4CXXVER}.tar* netcdf-cxx4-${CDF4CXXVER} /
+     --enable-static --enable-shared --disable-doxygen --with-pic
 }
 
 mk_netcdf4fortran() {