diff --git a/Makefile b/Makefile
index fa1fe06371afec371c98a4a05e4d49b9b424eb5a..e1b23c215f61ecd78b8612b7b0e4f517ae2904dd 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,7 @@ MKFILE_DIR = $(abspath $(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
 LOCAL_DIR = $(MKFILE_DIR)/.local
 
 BIN_DIR = $(LOCAL_DIR)/bin
+LIB_DIR = $(LOCAL_DIR)/lib
 TEMP_DIR = $(LOCAL_DIR)/tmp
 DATA_DIR = $(LOCAL_DIR)/data
 LOG_DIR = $(LOCAL_DIR)/logs
@@ -28,6 +29,7 @@ PLATFORM := $(shell if echo $$OSTYPE | grep -q darwin; then echo darwin; else ec
 
 NODEJS_URL = https://nodejs.org/dist/v$(NODEJS_VERSION)/node-v$(NODEJS_VERSION)-$(PLATFORM)-x64.tar.gz
 NODEJS_ARTIFACT = $(TEMP_DIR)/node-v$(NODEJS_VERSION)-$(PLATFORM)-x64.tar.gz
+NODEJS_ARCHIVE = $(patsubst %.tar.gz,%,$(notdir $(NODEJS_ARTIFACT)))
 NODEJS_BIN = $(BIN_DIR)/node
 NPM_BIN = $(BIN_DIR)/npm
 NODEJS_SHA256 ?= $(shell cat $(STACK_DIR)/versions/nodejs.256.sums | grep v$(NODEJS_VERSION)-$(PLATFORM)-x64 | awk '{ print $$ 2 }')
@@ -42,6 +44,7 @@ else
 	fail 'Unknown platform. No condition met'
 endif
 MONGODB_ARTIFACT = $(TEMP_DIR)/mongodb-$(PLATFORM)-$(MONGODB_VERSION).tar.gz
+MONGODB_ARCHIVE = $(patsubst %.tar.gz,%,$(notdir $(MONGODB_ARTIFACT)))
 MONGODB_BIN = $(BIN_DIR)/mongod
 MONGODB_SHA256 ?= $(shell cat $(STACK_DIR)/versions/mongodb.256.sums | grep $(PLATFORM)-x86_64-$(MONGODB_VERSION) | awk '{ print $$ 2 }')
 
@@ -157,7 +160,7 @@ $(NODEJS_BIN): | $(NODEJS_ARTIFACT) $(BIN_DIR)/
 		--strip-components 2 \
 		--directory "$(BIN_DIR)" \
 		--file "$(NODEJS_ARTIFACT)" \
-		node-*/bin/node
+		$(NODEJS_ARCHIVE)/bin/node
 	chmod +x "$@"
 
 $(NODEJS_ARTIFACT): | $(TEMP_DIR)/
@@ -171,14 +174,16 @@ $(NODEJS_ARTIFACT): | $(TEMP_DIR)/
 npm: $(NPM_BIN)
 npm: export PATH := $(BIN_DIR):$(PATH)
 $(NPM_BIN): | $(NODEJS_BIN)
+	mkdir -p $(LIB_DIR)
 	tar \
 		--extract \
 		--verbose \
 		--strip-components 2 \
-		--directory "$(BIN_DIR)" \
+		--directory "$(LIB_DIR)" \
 		--file "$(NODEJS_ARTIFACT)" \
-		node-*/bin/npm
-	chmod +x "$@"
+		$(NODEJS_ARCHIVE)/lib/node_modules
+	chmod +x $(LIB_DIR)/node_modules/npm/bin/npm-cli.js
+	ln -s $(LIB_DIR)/node_modules/npm/bin/npm-cli.js $(NPM_BIN)
 	npm install -g npm@$(NPM_VERSION)
 
 
@@ -186,14 +191,16 @@ $(NPM_BIN): | $(NODEJS_BIN)
 mongod: $(MONGODB_BIN)
 $(MONGODB_BIN): | $(MONGODB_ARTIFACT) $(BIN_DIR)/
 	@ [ $$(openssl dgst -sha256 "$(MONGODB_ARTIFACT)" | awk '{ print $$ 2 }') == $(MONGODB_SHA256) ] || ( echo "Invalid SHA256." && rm $(MONGODB_ARTIFACT) && exit 1 )
+	mkdir -p $(TEMP_DIR)/$(MONGODB_ARCHIVE)
 	tar \
 		--extract \
 		--verbose \
 		--strip-components 2 \
-		--directory "$(BIN_DIR)" \
-		--file "$(MONGODB_ARTIFACT)" \
-		mongodb-*/bin/mongod
+		--directory "$(TEMP_DIR)/$(MONGODB_ARCHIVE)" \
+		--file "$(MONGODB_ARTIFACT)"
+	mv $(TEMP_DIR)/$(MONGODB_ARCHIVE)/mongod "$@"
 	chmod +x "$@"
+	rm -rf $(TEMP_DIR)/$(MONGODB_ARCHIVE)
 
 $(MONGODB_ARTIFACT): | $(TEMP_DIR)/
 	curl \
diff --git a/README.md b/README.md
index 6753546af3a037280a0b1cd2fd0cba679f8d299a..d180150c11fb6d17304f14d1927cf7e0ff48cc82 100644
--- a/README.md
+++ b/README.md
@@ -78,6 +78,7 @@ etc.), which would then invoke logic also shown under some make target.
 #### `make start`
 
 * start a MongoDB process with an explicit inline-configuration
-* start the application process with variables being set only visible to that invocation (as an alternative to the
+* start the application process with variables being set in a way so that they are only visible to that invocation
+  (as an alternative to the
   environment configuration file `app/server/dev.env`)
 * block terminal to keep it as the output medium. To stop again, send a termination signal via `Ctrl+C`