diff --git a/Makefile b/Makefile
index 4141898..88cc745 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------#
 # Copyright 2016-2023 Open Networking Foundation (ONF) and the ONF Contributors
-
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
@@ -15,6 +15,8 @@
 # limitations under the License.
 # -----------------------------------------------------------------------
 
+$(if $(DEBUG),$(warning ENTER))
+
 .DEFAULT_GOAL := help
 
 $(if $(VERBOSE),$(eval export VERBOSE=$(VERBOSE))) # visible to include(s)
@@ -63,15 +65,6 @@
 DOCKER_BUILD_ARGS_LOCAL ?= ${DOCKER_BUILD_ARGS} \
 	--build-arg LOCAL_PROTOS=${LOCAL_PROTOS}
 
-# tool containers
-VOLTHA_TOOLS_VERSION ?= 2.4.0
-
-GO                = docker run --rm --user $$(id -u):$$(id -g) -v ${CURDIR}:/app $(shell test -t 0 && echo "-it") -v gocache:/.cache -v gocache-${VOLTHA_TOOLS_VERSION}:/go/pkg voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-golang go
-GO_JUNIT_REPORT   = docker run --rm --user $$(id -u):$$(id -g) -v ${CURDIR}:/app -i voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-go-junit-report go-junit-report
-GOCOVER_COBERTURA = docker run --rm --user $$(id -u):$$(id -g) -v ${CURDIR}:/app/src/github.com/opencord/voltha-go -i voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-gocover-cobertura gocover-cobertura
-GOLANGCI_LINT     = docker run --rm --user $$(id -u):$$(id -g) -v ${CURDIR}:/app $(shell test -t 0 && echo "-it") -v gocache:/.cache -v gocache-${VOLTHA_TOOLS_VERSION}:/go/pkg voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-golangci-lint golangci-lint
-HADOLINT          = docker run --rm --user $$(id -u):$$(id -g) -v ${CURDIR}:/app $(shell test -t 0 && echo "-it") voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}-hadolint hadolint
-
 .PHONY: docker-build local-protos local-lib-go help
 .DEFAULT_GOAL := help
 
@@ -79,7 +72,7 @@
 ## Local Development Helpers
 local-protos: ## Copies a local version of the voltha-protos dependency into the vendor directory
 ifdef LOCAL_PROTOS
-	rm -rf vendor/github.com/opencord/voltha-protos/v5/go
+	$(RM) -r vendor/github.com/opencord/voltha-protos/v5/go
 	mkdir -p vendor/github.com/opencord/voltha-protos/v5/go
 	cp -r ${LOCAL_PROTOS}/go/* vendor/github.com/opencord/voltha-protos/v5/go
 endif
@@ -87,7 +80,7 @@
 ## Local Development Helpers
 local-lib-go: ## Copies a local version of the voltha-lib-go dependency into the vendor directory
 ifdef LOCAL_LIB_GO
-	rm -rf vendor/github.com/opencord/voltha-lib-go/v7/pkg
+	$(RM) -r vendor/github.com/opencord/voltha-lib-go/v7/pkg
 	mkdir -p vendor/github.com/opencord/voltha-lib-go/v7/pkg
 	cp -r ${LOCAL_LIB_GO}/pkg/* vendor/github.com/opencord/voltha-lib-go/v7/pkg/
 endif
@@ -102,10 +95,9 @@
 docker-build-args := $(null)# comment line for debug mode
 
 docker-build: local-protos local-lib-go ## Build core docker image (set BUILD_PROFILED=true to also build the profiled image)
-	@echo "======================================================================="
-	@echo " ** TARGET: $@"
-	@echo "======================================================================="
-	$(MAKE) --no-print-directory init-test-results
+
+	$(call banner-enter,$@)
+	$(MAKE) --no-print-directory test-coverage-init
 
 	docker $(docker-build-args) build $(DOCKER_BUILD_ARGS) -t ${RWCORE_IMAGENAME}:${DOCKER_TAG} --target ${DOCKER_TARGET} -f docker/Dockerfile.rw_core .
 ifdef BUILD_PROFILED
@@ -117,11 +109,16 @@
 	docker build $(DOCKER_BUILD_ARGS) --target dev --build-arg GOLANG_IMAGE=golang:1.13.8-buster --build-arg CGO_PARAMETER="CGO_ENABLED=1" --build-arg DEPLOY_IMAGE=debian:buster-slim --build-arg EXTRA_GO_BUILD_TAGS="--race" -t ${RWCORE_IMAGENAME}:${DOCKER_TAG}-rd -f docker/Dockerfile.rw_core .
 endif
 
+	$(call banner-leave,$@)
+
 ## -----------------------------------------------------------------------
 ## Intent:
 ## -----------------------------------------------------------------------
 docker-push: ## Push the docker images to an external repository
-	docker push ${RWCORE_IMAGENAME}:${DOCKER_TAG}
+
+	$(call banner-enter,$@)
+
+docker push ${RWCORE_IMAGENAME}:${DOCKER_TAG}
 ifdef BUILD_PROFILED
 	docker push ${RWCORE_IMAGENAME}:${DOCKER_TAG}-profile
 endif
@@ -132,7 +129,14 @@
 	@if [ "`kind get clusters | grep voltha-$(TYPE)`" = '' ]; then echo "no voltha-$(TYPE) cluster found" && exit 1; fi
 	kind load docker-image ${RWCORE_IMAGENAME}:${DOCKER_TAG} --name=voltha-$(TYPE) --nodes $(shell kubectl get nodes --template='{{range .items}}{{.metadata.name}},{{end}}' | rev | cut -c 2- | rev)
 
+	$(call banner-leave,$@)
+
+## -----------------------------------------------------------------------
 ## lint and unit tests
+## -----------------------------------------------------------------------
+
+# [TODO]
+#   o Merge lint-* targets with repo:openolt-adapter/Makefile
 
 lint-dockerfile: ## Perform static analysis on Dockerfile
 	@echo "Running Dockerfile lint check..."
@@ -146,10 +150,8 @@
 	@git status > /dev/null
 	@git diff-index --quiet HEAD -- go.mod go.sum vendor || (echo "ERROR: Staged or modified files must be committed before running this test" && git status -- go.mod go.sum vendor && exit 1)
 	@[[ `git ls-files --exclude-standard --others go.mod go.sum vendor` == "" ]] || (echo "ERROR: Untracked files must be cleaned up before running this test" && git status -- go.mod go.sum vendor && exit 1)
-	${GO} mod tidy
 
-        # This command is destructive, vendor/ removed
-	${GO} mod vendor
+	$(MAKE) mod-update
 
 	@git status > /dev/null
 	@git diff-index --quiet HEAD -- go.mod go.sum vendor || (echo "ERROR: Modified files detected after running go mod tidy / go mod vendor" && git status -- go.mod go.sum vendor && git checkout -- go.mod go.sum vendor && exit 1)
@@ -160,47 +162,63 @@
 ## -----------------------------------------------------------------------
 lint: lint-mod lint-dockerfile ## Run all lint targets
 
-sca: ## Runs static code analysis with the golangci-lint tool
-	@$(RM) -r ./sca-report
-	@mkdir -p ./sca-report
-	@echo "Running static code analysis..."
-	@${GOLANGCI_LINT} run --deadline=6m --out-format junit-xml ./... \
-	    | tee ./sca-report/sca-report.xml
-	@echo ""
-	@echo "Static code analysis OK"
+include $(MAKEDIR)/analysis/include.mk
 
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
 tests-dir      := ./tests/results
 tests-coverage := $(tests-dir)/go-test-coverage
 tests-results  := $(tests-dir)/go-test-results
-test: local-lib-go ## Run unit tests
-	$(MAKE) --no-print-directory init-test-results
-	$(HIDE)${GO} test -mod=vendor -v -coverprofile $(tests-coverage).out -covermode count ./... 2>&1 | tee $(tests-results).out ;\
-	RETURN=$$? ;\
-	${GO_JUNIT_REPORT} < $(tests-results).out > $(tests-results).xml ;\
-	${GOCOVER_COBERTURA} < $(tests-coverage).out > $(tests-coverage).xml ;\
-	exit $$RETURN
+
+test :: test-coverage ## Run unit tests
+test-coverage : local-lib-go
 
 clean :: distclean ## Removes any local filesystem artifacts generated by a build
 
 distclean sterile :: ## Removes any local filesystem artifacts generated by a build or test run
 	$(RM) -r ./sca-report
 
-mod-update: ## Update go mod files
-	${GO} mod tidy
-	${GO} mod vendor
-
 fmt: ## Formats the soure code to go best practice style
+#	gofmt -s -w $(PACKAGES)
 	@go fmt ${PACKAGES}
 
-## ---------------------------------------------------------------------------
-## Intent: Prep work, test -coverprofile fails w/o a file on disk ?!?
-## ---------------------------------------------------------------------------
-init-test-results:
-	@$(RM) -r tests/results
-	@mkdir -p tests/results
-	@touch $(tests-coverage).out
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+.PHONY: mod-update
+mod-update: mod-tidy mod-vendor
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+.PHONY: mod-tidy
+mod-tidy:
+	$(call banner-enter,$@)
+	${GO} mod tidy
+	$(call banner-leave,$@)
+
+## -----------------------------------------------------------------------
+## Intent: Refresh vendor/ directory package source
+## -----------------------------------------------------------------------
+##   Note: This target is destructive, vendor/ directory will be removed.
+##   Todo: Update logic to checkout version on demand VS checkin a static
+##         copy of vendor/ sources then augment.  Logically removal of
+##         files under revision control is strange.
+## -----------------------------------------------------------------------
+.PHONY: mod-vendor
+mod-vendor:
+	$(call banner-enter,$@)
+	@$(if $(LOCAL_FIX_PERMS),chmod 777 .)
+	${GO} mod vendor
+	@$(if $(LOCAL_FIX_PERMS),chmod 755 .)
+	$(call banner-leave,$@)
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help ::
+	@echo '[MOD UPDATE]'
+	@echo '  mod-update'
+	@echo '    LOCAL_FIX_PERMS=1    Hack to fix docker filesystem access problems'
+	@echo '  mod-tidy'
+	@echo '  mod-vendor'
 
 ## ---------------------------------------------------------------------------
 # For each makefile target, add ## <description> on the target line and it will be listed by 'make help'
@@ -212,11 +230,12 @@
 	@echo "  versions    Display version-by-tool used while building"
   ifdef VERBOSE
 	@echo
-	@echo "  init-test-results    Massage tests/results to fix coverage reporting"
   endif
 	@echo
 	@grep --no-filename '^[[:alpha:]_-]*:.* ##' $(MAKEFILE_LIST) \
 		| sort \
 		| awk 'BEGIN {FS=":.* ## "}; {printf "%-25s : %s\n", $$1, $$2};'
 
+$(if $(DEBUG),$(warning LEAVE))
+
 # [EOF]
