diff --git a/lib/extract.bash b/lib/extract.bash
new file mode 100644
index 0000000..1c55928
--- /dev/null
+++ b/lib/extract.bash
@@ -0,0 +1,20 @@
+extract () {
+	if [ -f $1 ] ; then
+		case $1 in
+			*.tar.bz2) tar xvjf $1   ;;
+			*.tar.gz)  tar xvzf $1   ;;
+			*.bz2)     bunzip2 $1    ;;
+			*.rar)     unrar x $1    ;;
+			*.gz)      gunzip $1     ;;
+			*.tar)     tar xvf $1    ;;
+			*.tbz2)    tar xvjf $1   ;;
+			*.tgz)     tar xvzf $1   ;;
+			*.zip)     unzip $1      ;;
+			*.Z)       uncompress $1 ;;
+			*.7z)      7z x $1       ;;
+			*)         echo "'$1' cannot be extracted via >extract<" ;;
+		esac
+	else
+		echo "'$1' is not a valid file"
+	fi
+}
diff --git a/plugins/available/nvm.plugin.bash b/plugins/available/nvm.plugin.bash
new file mode 100644
index 0000000..a02722e
--- /dev/null
+++ b/plugins/available/nvm.plugin.bash
@@ -0,0 +1,251 @@
+# Node Version Manager
+# Implemented as a bash function
+# To use source this file from your bash profile
+#
+# Implemented by Tim Caswell <tim@creationix.com>
+# with much bash help from Matthew Ranney
+# https://github.com/creationix/nvm
+
+export NVM_DIR=$HOME/.nvm
+
+if [ ! -d "$NVM_DIR" ]; then
+    mkdir $NVM_DIR
+fi
+
+# Auto detect the NVM_DIR
+if [ ! -d "$NVM_DIR" ]; then
+    export NVM_DIR=$(cd $(dirname ${BASH_SOURCE[0]:-$0}); pwd)
+fi
+
+# Emulate curl with wget, if necessary
+if [ ! `which curl` ]; then
+    if [ `which wget` ]; then
+        curl() {
+            ARGS="$* "
+            ARGS=${ARGS/-s /-q }
+            ARGS=${ARGS/-\# /}
+            ARGS=${ARGS/-C - /-c }
+            ARGS=${ARGS/-o /-O }
+
+            wget $ARGS
+        }
+    else
+        NOCURL='nocurl'
+        curl() { echo 'Need curl or wget to proceed.' >&2; }
+    fi
+fi
+
+# Expand a version using the version cache
+nvm_version()
+{
+    PATTERN=$1
+    VERSION=''
+    if [ -f "$NVM_DIR/alias/$PATTERN" ]; then
+        nvm_version `cat $NVM_DIR/alias/$PATTERN`
+        return
+    fi
+    # If it looks like an explicit version, don't do anything funny
+    if [[ "$PATTERN" == v*.*.* ]]; then
+        VERSION="$PATTERN"
+    fi
+    # The default version is the current one
+    if [ ! "$PATTERN" -o "$PATTERN" = 'current' ]; then
+        VERSION=`node -v 2>/dev/null`
+    fi
+    if [ "$PATTERN" = 'stable' ]; then
+        PATTERN='*.*[02468].'
+    fi
+    if [ "$PATTERN" = 'latest' ]; then
+        PATTERN='*.*.'
+    fi
+    if [ "$PATTERN" = 'all' ]; then
+        (cd $NVM_DIR; \ls -dG v* 2>/dev/null || echo "N/A")
+        return
+    fi
+    if [ ! "$VERSION" ]; then
+        VERSION=`(cd $NVM_DIR; \ls -d v${PATTERN}* 2>/dev/null) | sort -t. -k 2,1n -k 2,2n -k 3,3n | tail -n1`
+    fi
+    if [ ! "$VERSION" ]; then
+        echo "N/A"
+        return 13
+    elif [ -e "$NVM_DIR/$VERSION" ]; then
+        (cd $NVM_DIR; \ls -dG "$VERSION")
+    else
+        echo "$VERSION"
+    fi
+}
+
+nvm()
+{
+  if [ $# -lt 1 ]; then
+    nvm help
+    return
+  fi
+  case $1 in
+    "help" )
+      echo
+      echo "Node Version Manager"
+      echo
+      echo "Usage:"
+      echo "    nvm help                    Show this message"
+      echo "    nvm install <version>       Download and install a <version>"
+      echo "    nvm use <version>           Modify PATH to use <version>"
+      echo "    nvm ls                      List versions (installed versions are blue)"
+      echo "    nvm ls <version>            List versions matching a given description"
+      echo "    nvm deactivate              Undo effects of NVM on current shell"
+      echo "    nvm sync                    Update the local cache of available versions"
+      echo "    nvm alias [<pattern>]       Show all aliases beginning with <pattern>"
+      echo "    nvm alias <name> <version>  Set an alias named <name> pointing to <version>"
+      echo
+      echo "Example:"
+      echo "    nvm install v0.4.0          Install a specific version number"
+      echo "    nvm use stable              Use the stable release"
+      echo "    nvm install latest          Install the latest, possibly unstable version"
+      echo "    nvm use 0.2                 Use the latest available 0.2.x release"
+      echo "    nvm alias default v0.4.0    Set v0.4.0 as the default" 
+      echo
+    ;;
+    "install" )
+      if [ $# -ne 2 ]; then
+        nvm help
+        return
+      fi
+      [ "$NOCURL" ] && curl && return
+      VERSION=`nvm_version $2`
+      if (
+        mkdir -p "$NVM_DIR/src" && \
+        cd "$NVM_DIR/src" && \
+        curl -C - -# "http://nodejs.org/dist/node-$VERSION.tar.gz" -o "node-$VERSION.tar.gz" && \
+        tar -xzf "node-$VERSION.tar.gz" && \
+        cd "node-$VERSION" && \
+        ./configure --prefix="$NVM_DIR/$VERSION" && \
+        make && \
+        rm -f "$NVM_DIR/$VERSION" 2>/dev/null && \
+        make install
+        )
+      then
+        nvm use $VERSION
+        if ! which npm ; then
+          echo "Installing npm..."
+          # TODO: if node version 0.2.x add npm_install=0.2.19 before sh
+          curl http://npmjs.org/install.sh | clean=yes sh
+        fi
+      else
+        echo "nvm: install $VERSION failed!"
+      fi
+    ;;
+    "deactivate" )
+      if [[ $PATH == *$NVM_DIR/*/bin* ]]; then
+        export PATH=${PATH%$NVM_DIR/*/bin*}${PATH#*$NVM_DIR/*/bin:}
+        hash -r
+        echo "$NVM_DIR/*/bin removed from \$PATH"
+      else
+        echo "Could not find $NVM_DIR/*/bin in \$PATH"
+      fi
+      if [[ $MANPATH == *$NVM_DIR/*/share/man* ]]; then
+        export MANPATH=${MANPATH%$NVM_DIR/*/share/man*}${MANPATH#*$NVM_DIR/*/share/man:}
+        echo "$NVM_DIR/*/share/man removed from \$MANPATH"
+      else
+        echo "Could not find $NVM_DIR/*/share/man in \$MANPATH"
+      fi
+    ;;
+    "use" )
+      if [ $# -ne 2 ]; then
+        nvm help
+        return
+      fi
+      VERSION=`nvm_version $2`
+      if [ ! -d $NVM_DIR/$VERSION ]; then
+        echo "$VERSION version is not installed yet"
+        return;
+      fi
+      if [[ $PATH == *$NVM_DIR/*/bin* ]]; then
+        PATH=${PATH%$NVM_DIR/*/bin*}$NVM_DIR/$VERSION/bin${PATH#*$NVM_DIR/*/bin}
+      else
+        PATH="$NVM_DIR/$VERSION/bin:$PATH"
+      fi
+      if [[ $MANPATH == *$NVM_DIR/*/share/man* ]]; then
+        MANPATH=${MANPATH%$NVM_DIR/*/share/man*}$NVM_DIR/$VERSION/share/man${MANPATH#*$NVM_DIR/*/share/man}
+      else
+        MANPATH="$NVM_DIR/$VERSION/share/man:$MANPATH"
+      fi
+      export PATH
+      hash -r
+      export MANPATH
+      export NVM_PATH="$NVM_DIR/$VERSION/lib/node"
+      export NVM_BIN="$NVM_DIR/$VERSION/bin"
+      echo "Now using node $VERSION"
+    ;;
+    "ls" )
+      if [ $# -ne 1 ]; then
+        nvm_version $2
+        return
+      fi
+      nvm_version all
+      for P in {stable,latest,current}; do
+          echo -ne "$P: \t"; nvm_version $P
+      done
+      nvm alias
+      echo "# use 'nvm sync' to update from nodejs.org"
+    ;;
+    "alias" )
+      mkdir -p $NVM_DIR/alias
+      if [ $# -le 2 ]; then
+        (cd $NVM_DIR/alias && for ALIAS in `\ls $2* 2>/dev/null`; do
+            DEST=`cat $ALIAS`
+            VERSION=`nvm_version $DEST`
+            if [ "$DEST" = "$VERSION" ]; then
+                echo "$ALIAS -> $DEST"
+            else
+                echo "$ALIAS -> $DEST (-> $VERSION)"
+            fi
+        done)
+        return
+      fi
+      if [ ! "$3" ]; then
+          rm -f $NVM_DIR/alias/$2
+          echo "$2 -> *poof*"
+          return
+      fi
+      mkdir -p $NVM_DIR/alias
+      VERSION=`nvm_version $3`
+      if [ $? -ne 0 ]; then
+        echo "! WARNING: Version '$3' does not exist." >&2 
+      fi
+      echo $3 > "$NVM_DIR/alias/$2"
+      if [ ! "$3" = "$VERSION" ]; then
+          echo "$2 -> $3 (-> $VERSION)"
+          echo "! WARNING: Moving target. Aliases to implicit versions may change without warning."
+      else
+        echo "$2 -> $3"
+      fi
+    ;;
+    "sync" )
+        [ "$NOCURL" ] && curl && return
+        LATEST=`nvm_version latest`
+        STABLE=`nvm_version stable`
+        (cd $NVM_DIR
+        rm -f v* 2>/dev/null
+        printf "# syncing with nodejs.org..."
+        for VER in `curl -s http://nodejs.org/dist/ -o - | grep 'node-v.*\.tar\.gz' | sed -e 's/.*node-//' -e 's/\.tar\.gz.*//'`; do
+            touch $VER
+        done
+        echo " done."
+        )
+        [ "$STABLE" = `nvm_version stable` ] || echo "NEW stable: `nvm_version stable`"
+        [ "$LATEST" = `nvm_version latest` ] || echo "NEW latest: `nvm_version latest`"
+    ;;
+    "clear-cache" )
+        rm -f $NVM_DIR/v* 2>/dev/null
+        echo "Cache cleared."
+    ;;
+    "version" )
+        nvm_version $2
+    ;;
+    * )
+      nvm help
+    ;;
+  esac
+}
+
+nvm ls default >/dev/null 2>&1 && nvm use default >/dev/null
