diff --git a/.devenv/gc/shell b/.devenv/gc/shell
index f0d48df8a30316fdde3eefdb69cffdd560a3d30c..f11c4320b0a521b52b867c04c51f618f9880b18a 120000
--- a/.devenv/gc/shell
+++ b/.devenv/gc/shell
@@ -1 +1 @@
-shell-2-link
\ No newline at end of file
+shell-3-link
\ No newline at end of file
diff --git a/.devenv/gc/shell-2-link b/.devenv/gc/shell-2-link
deleted file mode 120000
index 982769ce73c7215b97d9da94334f6776834893bb..0000000000000000000000000000000000000000
--- a/.devenv/gc/shell-2-link
+++ /dev/null
@@ -1 +0,0 @@
-/nix/store/1ppns0fipd84msivyw8ypd4804zn8jli-devenv-shell-env
\ No newline at end of file
diff --git a/.devenv/gc/shell-3-link b/.devenv/gc/shell-3-link
new file mode 120000
index 0000000000000000000000000000000000000000..c1733c71cc006c212761a3cd9ee9bbd81f54d474
--- /dev/null
+++ b/.devenv/gc/shell-3-link
@@ -0,0 +1 @@
+/nix/store/zj0y62aimrc2m5cn3pbd7hasvvr6ypjz-devenv-shell-env
\ No newline at end of file
diff --git a/.direnv/devenv-profile-601026b83b4164d6b1f54d2575499e82dedd8913.rc b/.direnv/devenv-profile-601026b83b4164d6b1f54d2575499e82dedd8913.rc
new file mode 100644
index 0000000000000000000000000000000000000000..7aa792bd634754caf4c853ff3bba52297889dc0b
--- /dev/null
+++ b/.direnv/devenv-profile-601026b83b4164d6b1f54d2575499e82dedd8913.rc
@@ -0,0 +1,258 @@
+unset shellHook
+PATH=${PATH:-}
+nix_saved_PATH="$PATH"
+XDG_DATA_DIRS=${XDG_DATA_DIRS:-}
+nix_saved_XDG_DATA_DIRS="$XDG_DATA_DIRS"
+BASH='/noshell'
+HOSTTYPE='x86_64'
+IFS=' 	
+'
+IN_NIX_SHELL='impure'
+export IN_NIX_SHELL
+LINENO='76'
+MACHTYPE='x86_64-pc-linux-gnu'
+NIX_BUILD_CORES='0'
+export NIX_BUILD_CORES
+NIX_STORE='/nix/store'
+export NIX_STORE
+OLDPWD=''
+export OLDPWD
+OPTERR='1'
+OSTYPE='linux-gnu'
+PATH='/path-not-set'
+export PATH
+PS4='+ '
+builder='/nix/store/kxkdrxvc3da2dpsgikn8s2ml97h88m46-bash-interactive-5.2-p15/bin/bash'
+export builder
+dontAddDisableDepTrack='1'
+export dontAddDisableDepTrack
+name='devenv-shell'
+export name
+out='/home/vs/workspaces/oss/go-libs/xflags/outputs/out'
+export out
+outputs='out'
+shellHook='
+# Remove all the unnecessary noise that is set by the build env
+unset NIX_BUILD_TOP NIX_BUILD_CORES NIX_STORE
+unset TEMP TEMPDIR TMP TMPDIR
+# $name variable is preserved to keep it compatible with pure shell https://github.com/sindresorhus/pure/blob/47c0c881f0e7cfdb5eaccd335f52ad17b897c060/pure.zsh#L235
+unset builder out shellHook stdenv system
+# Flakes stuff
+unset dontAddDisableDepTrack outputs
+
+# For `nix develop`. We get /noshell on Linux and /sbin/nologin on macOS.
+if [[ "$SHELL" == "/noshell" || "$SHELL" == "/sbin/nologin" ]]; then
+  export SHELL=/nix/store/kxkdrxvc3da2dpsgikn8s2ml97h88m46-bash-interactive-5.2-p15/bin/bash
+fi
+
+# https://github.com/numtide/devshell/issues/158
+PATH=${PATH#/path-not-set:}
+
+export DEVENV_PROFILE=/nix/store/ishxkjwm6m1nq2dzailw41xw5rczf6hi-devenv-profile
+
+# add installed packages to PATH
+export PATH="$DEVENV_PROFILE/bin:$PATH"
+
+# prepend common compilation lookup paths
+export PKG_CONFIG_PATH="$DEVENV_PROFILE/lib/pkgconfig:${PKG_CONFIG_PATH-}"
+export LD_LIBRARY_PATH="$DEVENV_PROFILE/lib:${LD_LIBRARY_PATH-}"
+export LIBRARY_PATH="$DEVENV_PROFILE/lib:${LIBRARY_PATH-}"
+export C_INCLUDE_PATH="$DEVENV_PROFILE/include:${C_INCLUDE_PATH-}"
+
+# these provide shell completions / default config options
+export XDG_DATA_DIRS="$DEVENV_PROFILE/share:${XDG_DATA_DIRS-}"
+export XDG_CONFIG_DIRS="$DEVENV_PROFILE/etc/xdg:${XDG_CONFIG_DIRS-}"
+
+export DEVENV_DOTFILE='\''/home/vs/workspaces/oss/go-libs/xflags/.devenv'\''
+export DEVENV_PROFILE='\''/nix/store/ishxkjwm6m1nq2dzailw41xw5rczf6hi-devenv-profile'\''
+export DEVENV_ROOT='\''/home/vs/workspaces/oss/go-libs/xflags'\''
+export DEVENV_STATE='\''/home/vs/workspaces/oss/go-libs/xflags/.devenv/state'\''
+export GIT_EXTERNAL_DIFF='\''difft'\''
+export GOPATH='\''/home/vs/workspaces/oss/go-libs/xflags/.devenv/state/go'\''
+export GOROOT='\''/nix/store/m3mi5km1zdmaqdb33byirlixigzh3f4l-go-1.20.7/share/go/'\''
+
+
+export PATH=$GOPATH/bin:$PATH
+
+
+    
+cat <<'\''EOF'\'' > Taskfile.yml
+
+# THIS FILE IS AUTOGENERATED BY THE DEVENVSHELL
+# DO NOT EDIT THIS FILE MANUALLY
+# INSTEAD EDIT THE DEVENVSHELL CONFIGURATION FILE devenv.nix 
+# AND OPEN A SHELL WITH THE COMMAND devenv shell
+#
+# Information about the task runner can be found here:
+# https://taskfile.dev
+
+version: '\''3'\''
+
+tasks:
+  default:
+    cmds:
+      - task --list
+    silent: true
+    
+  test:
+    desc: Execute unit tests in Go.
+    cmds:
+      - echo "Execute unit tests in Go."
+      - go test -cover -v ./...
+      - go test -bench -v ./...
+      - go test -race -v ./...
+
+  test-fuzz:
+    desc: Conduct fuzzing tests.#
+    cmds:  
+      - echo "Conduct fuzzing tests."
+      - go test -v -fuzztime=30s -fuzz=Fuzz ./...
+
+  add-licenses:
+    desc: Attach license headers to Go files.
+    cmds:
+      - echo "Attach license headers to Go files."
+      - go install github.com/google/addlicense@latest
+      - addlicense -c "schukai GmbH" -s -l "AGPL-3.0" ./*.go
+    silent: true
+    
+  check-licenses:
+    desc: Check license headers of Go files.
+    silent: true
+    cmds:
+      - go-licenses save "$(get-go-default-packages)"  --ignore "gitlab.schukai.com"  --force --save_path ${DEVENV_ROOT}/licenses/
+
+  check:
+    desc: Confirm repository status.
+    cmds:
+      - git diff-index --quiet HEAD || (echo "There are uncommitted changes after running make. Please commit or stash them before running make."; exit 1)
+    silent: true
+
+  commit:
+    desc: Commit changes to the repository.
+    aliases:
+      - c
+      - ci
+      - git-commit
+    cmds:
+      - do-git-commit
+EOF
+
+cat <<'\''EOF'\'' > .gitlab-ci.yml
+
+# THIS FILE IS AUTOGENERATED BY THE DEVENVSHELL
+# DO NOT EDIT THIS FILE MANUALLY
+# INSTEAD EDIT THE DEVENVSHELL CONFIGURATION FILE devenv.nix
+# AND OPEN A SHELL WITH THE COMMAND devenv shell
+#
+
+image: docker-registry.schukai.com:443/nixos-ci-devenv:latest
+
+services:
+  - docker:dind
+
+variables:
+  # The repo name as used in
+  # https://github.com/nix-community/NUR/blob/master/repos.json
+  NIXOS_VERSION: "23.05"
+  NIXPKGS_ALLOW_UNFREE: "1"
+  NIXPKGS_ALLOW_INSECURE: "1"
+  DOCKER_DRIVER: overlay2
+  GIT_DEPTH: 10
+
+stages:
+  - test
+  - deploy 
+
+before_script:
+  - nix shell nixpkgs#coreutils-full -c mkdir -p /certs/client/
+  - nix shell nixpkgs#coreutils-full -c ln -fs /etc/ssl/certs/ca-bundle.crt /certs/client/ca.pem
+  - echo > .env-gitlab-ci
+  - variables=("HOME=$HOME" "CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME" "CI_REPOSITORY_URL=$CI_REPOSITORY_URL" "GITLAB_TOKEN=$GITLAB_TOKEN" "CI_JOB_TOKEN=$CI_JOB_TOKEN" "GITLAB_USER_EMAIL=$GITLAB_USER_EMAIL" "GITLAB_USER_NAME=\"$GITLAB_USER_NAME\"" "CI_REGISTRY_USER=$CI_REGISTRY_USER" "CI_PROJECT_ID=$CI_PROJECT_ID" "CI_PROJECT_DIR=$CI_PROJECT_DIR" "CI_API_V4_URL=$CI_API_V4_URL" "CI_PROJECT_NAME=$CI_PROJECT_NAME" "CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA"); for var in "${variables[@]}"; do echo "$var" >> .env-gitlab-ci; done
+  - cat .env-gitlab-ci
+
+after_script:
+  - if [ -f .env-gitlab-ci ]; then rm .env-gitlab-ci; fi
+
+test:
+  stage: test
+  tags:
+    - nixos
+  script:
+    - devenv shell test-lib
+
+  cache:
+    - key: nixos
+      paths:
+        - /nix/store
+  
+  artifacts:
+    paths:
+      - dist
+
+deploy:
+  stage: deploy
+  tags:
+    - nixos
+  script:
+    - devenv shell -c deploy-lib
+
+  when: on_success
+
+  cache:
+    - key: nixos
+      paths:
+        - /nix/store
+
+
+  artifacts:
+    paths:
+      - dist   
+EOF
+
+   
+    
+
+export PS1="\[\e[0;34m\](devenv)\[\e[0m\] ${PS1-}"
+
+# set path to locales on non-NixOS Linux hosts
+if [ -z "${LOCALE_ARCHIVE-}" ]; then
+  export LOCALE_ARCHIVE=/nix/store/mrbcpynv50xm2ad1gm2r15jvlg22nxnm-glibc-locales-2.37-8/lib/locale/locale-archive
+fi
+
+
+# note what environments are active, but make sure we don'\''t repeat them
+if [[ ! "${DIRENV_ACTIVE-}" =~ (^|:)"$PWD"(:|$) ]]; then
+  export DIRENV_ACTIVE="$PWD:${DIRENV_ACTIVE-}"
+fi
+
+# devenv helper
+if [ ! type -p direnv &>/dev/null && -f .envrc ]; then
+  echo "You have .envrc but direnv command is not installed."
+  echo "Please install direnv: https://direnv.net/docs/installation.html"
+fi
+
+mkdir -p .devenv
+rm -f .devenv/profile
+ln -s /nix/store/ishxkjwm6m1nq2dzailw41xw5rczf6hi-devenv-profile .devenv/profile
+
+'
+export shellHook
+stdenv='/nix/store/psfv6k7b2qa49zzdgr221qbi4nq8i3km-naked-stdenv'
+export stdenv
+system='x86_64-linux'
+export system
+runHook ()
+{
+ 
+    eval "$shellHook";
+    unset runHook
+}
+PATH="$PATH:$nix_saved_PATH"
+XDG_DATA_DIRS="$XDG_DATA_DIRS:$nix_saved_XDG_DATA_DIRS"
+export NIX_BUILD_TOP="$(mktemp -d -t nix-shell.XXXXXX)"
+export TMP="$NIX_BUILD_TOP"
+export TMPDIR="$NIX_BUILD_TOP"
+export TEMP="$NIX_BUILD_TOP"
+export TEMPDIR="$NIX_BUILD_TOP"
+eval "$shellHook"
diff --git a/Taskfile.yml b/Taskfile.yml
index 7095ba5db46c0440d33aa340c87fc88048de6892..b7313f4d13319627727838e8df5302c52eefc042 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -20,8 +20,8 @@ tasks:
     cmds:
       - echo "Execute unit tests in Go."
       - go test -cover -v ./...
-      - go test -bench .
-      - go test -race .
+      - go test -bench -v ./...
+      - go test -race -v ./...
 
   test-fuzz:
     desc: Conduct fuzzing tests.#
diff --git a/devenv.nix b/devenv.nix
index ee781c635b979f98c13086fa462997ddba255430..efd4d9b7b93079d1aa4247ee0d940d5fe8f465b6 100644
--- a/devenv.nix
+++ b/devenv.nix
@@ -185,8 +185,8 @@
         cmds:
           - echo "Execute unit tests in Go."
           - go test -cover -v ./...
-          - go test -bench .
-          - go test -race .
+          - go test -bench -v ./...
+          - go test -race -v ./...
 
       test-fuzz:
         desc: Conduct fuzzing tests.#