diff --git a/.gitignore b/.gitignore
index b25c15b81fae06e1c55946ac6270bfdb293870e8..b0e6933438a3a49c504f9db2f8438f126750f35b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
+/repo
+/.state
 *~
diff --git a/mbed-cli/.gitignore b/src/mbed-cli/.gitignore
similarity index 100%
rename from mbed-cli/.gitignore
rename to src/mbed-cli/.gitignore
diff --git a/mbed-cli/Makefile b/src/mbed-cli/Makefile
similarity index 79%
rename from mbed-cli/Makefile
rename to src/mbed-cli/Makefile
index f76c1a794a9d504c43f95553d1ccd6b61ca31b13..399ce537dec86caafdbd87aa2371a50560f97ca9 100644
--- a/mbed-cli/Makefile
+++ b/src/mbed-cli/Makefile
@@ -1,8 +1,12 @@
 TARGET=se.lth.control.mbed-cli
 FLATHUB_REPO="https://flathub.org/repo/flathub.flatpakrepo"
+COLLECTION_ID=se.lth.control
+STATE_DIR=
+REPO=
 
 .PHONY : build
-build:  auto-ignore-installed.json\
+build:  setup \
+	auto-ignore-installed.json\
         auto-simple.json \
 	manual-util-linux.json \
 	manual-arm-none-eabi-binutils.json \
@@ -13,9 +17,20 @@ build:  auto-ignore-installed.json\
 	manual-git.json \
 	manual-build-files.json \
 	manual-mbed-cli-wrap.json 
-	flatpak-builder --force-clean build $(TARGET).json
+	flatpak-builder --force-clean \
+			${COLLECTION_ID:%=--collection-id %} \
+			${STATE_DIR:%=--state-dir %} \
+			${REPO:%=--repo %} \
+			build $(TARGET).json
+
+PHONY: install
+install: build
 	flatpak-builder --user --install --force-clean build/ $(TARGET).json
 
+.PHONY: uninstall
+uninstall:
+	flatpak uninstall -y $(TARGET)
+
 .PHONY: setup
 setup:
 	flatpak remote-add --if-not-exists flathub $(FLATHUB_REPO)
diff --git a/mbed-cli/manual-XmpX.install b/src/mbed-cli/manual-XmpX.install
similarity index 100%
rename from mbed-cli/manual-XmpX.install
rename to src/mbed-cli/manual-XmpX.install
diff --git a/mbed-cli/manual-XmpX.json b/src/mbed-cli/manual-XmpX.json
similarity index 100%
rename from mbed-cli/manual-XmpX.json
rename to src/mbed-cli/manual-XmpX.json
diff --git a/mbed-cli/manual-arm-none-eabi-binutils.install b/src/mbed-cli/manual-arm-none-eabi-binutils.install
similarity index 100%
rename from mbed-cli/manual-arm-none-eabi-binutils.install
rename to src/mbed-cli/manual-arm-none-eabi-binutils.install
diff --git a/mbed-cli/manual-arm-none-eabi-binutils.json b/src/mbed-cli/manual-arm-none-eabi-binutils.json
similarity index 100%
rename from mbed-cli/manual-arm-none-eabi-binutils.json
rename to src/mbed-cli/manual-arm-none-eabi-binutils.json
diff --git a/mbed-cli/manual-arm-none-eabi-bootstrap-gcc.install b/src/mbed-cli/manual-arm-none-eabi-bootstrap-gcc.install
similarity index 100%
rename from mbed-cli/manual-arm-none-eabi-bootstrap-gcc.install
rename to src/mbed-cli/manual-arm-none-eabi-bootstrap-gcc.install
diff --git a/mbed-cli/manual-arm-none-eabi-bootstrap-gcc.json b/src/mbed-cli/manual-arm-none-eabi-bootstrap-gcc.json
similarity index 100%
rename from mbed-cli/manual-arm-none-eabi-bootstrap-gcc.json
rename to src/mbed-cli/manual-arm-none-eabi-bootstrap-gcc.json
diff --git a/mbed-cli/manual-arm-none-eabi-gcc.install b/src/mbed-cli/manual-arm-none-eabi-gcc.install
similarity index 100%
rename from mbed-cli/manual-arm-none-eabi-gcc.install
rename to src/mbed-cli/manual-arm-none-eabi-gcc.install
diff --git a/mbed-cli/manual-arm-none-eabi-gcc.json b/src/mbed-cli/manual-arm-none-eabi-gcc.json
similarity index 100%
rename from mbed-cli/manual-arm-none-eabi-gcc.json
rename to src/mbed-cli/manual-arm-none-eabi-gcc.json
diff --git a/mbed-cli/manual-arm-none-eabi-newlib.install b/src/mbed-cli/manual-arm-none-eabi-newlib.install
similarity index 100%
rename from mbed-cli/manual-arm-none-eabi-newlib.install
rename to src/mbed-cli/manual-arm-none-eabi-newlib.install
diff --git a/mbed-cli/manual-arm-none-eabi-newlib.json b/src/mbed-cli/manual-arm-none-eabi-newlib.json
similarity index 100%
rename from mbed-cli/manual-arm-none-eabi-newlib.json
rename to src/mbed-cli/manual-arm-none-eabi-newlib.json
diff --git a/mbed-cli/manual-build-files.install b/src/mbed-cli/manual-build-files.install
similarity index 100%
rename from mbed-cli/manual-build-files.install
rename to src/mbed-cli/manual-build-files.install
diff --git a/mbed-cli/manual-build-files.json b/src/mbed-cli/manual-build-files.json
similarity index 100%
rename from mbed-cli/manual-build-files.json
rename to src/mbed-cli/manual-build-files.json
diff --git a/mbed-cli/manual-git.install b/src/mbed-cli/manual-git.install
similarity index 100%
rename from mbed-cli/manual-git.install
rename to src/mbed-cli/manual-git.install
diff --git a/mbed-cli/manual-git.json b/src/mbed-cli/manual-git.json
similarity index 100%
rename from mbed-cli/manual-git.json
rename to src/mbed-cli/manual-git.json
diff --git a/mbed-cli/manual-mbed-cli-wrap.install b/src/mbed-cli/manual-mbed-cli-wrap.install
similarity index 100%
rename from mbed-cli/manual-mbed-cli-wrap.install
rename to src/mbed-cli/manual-mbed-cli-wrap.install
diff --git a/mbed-cli/manual-mbed-cli-wrap.json b/src/mbed-cli/manual-mbed-cli-wrap.json
similarity index 100%
rename from mbed-cli/manual-mbed-cli-wrap.json
rename to src/mbed-cli/manual-mbed-cli-wrap.json
diff --git a/mbed-cli/manual-util-linux.install b/src/mbed-cli/manual-util-linux.install
similarity index 100%
rename from mbed-cli/manual-util-linux.install
rename to src/mbed-cli/manual-util-linux.install
diff --git a/mbed-cli/manual-util-linux.json b/src/mbed-cli/manual-util-linux.json
similarity index 100%
rename from mbed-cli/manual-util-linux.json
rename to src/mbed-cli/manual-util-linux.json
diff --git a/mbed-cli/mbed-cli b/src/mbed-cli/mbed-cli
similarity index 100%
rename from mbed-cli/mbed-cli
rename to src/mbed-cli/mbed-cli
diff --git a/mbed-cli/pip-ignore-installed.txt b/src/mbed-cli/pip-ignore-installed.txt
similarity index 100%
rename from mbed-cli/pip-ignore-installed.txt
rename to src/mbed-cli/pip-ignore-installed.txt
diff --git a/mbed-cli/pip-simple.txt b/src/mbed-cli/pip-simple.txt
similarity index 100%
rename from mbed-cli/pip-simple.txt
rename to src/mbed-cli/pip-simple.txt
diff --git a/mbed-cli/se.lth.control.mbed-cli.json b/src/mbed-cli/se.lth.control.mbed-cli.json
similarity index 100%
rename from mbed-cli/se.lth.control.mbed-cli.json
rename to src/mbed-cli/se.lth.control.mbed-cli.json
diff --git a/pip-install-to-json/.gitignore b/src/pip-install-to-json/.gitignore
similarity index 100%
rename from pip-install-to-json/.gitignore
rename to src/pip-install-to-json/.gitignore
diff --git a/pip-install-to-json/Makefile b/src/pip-install-to-json/Makefile
similarity index 80%
rename from pip-install-to-json/Makefile
rename to src/pip-install-to-json/Makefile
index 6e78062db74acff551d0e61bb9423707b514c395..e498824b856a94fa0278a56c9865262765d48759 100644
--- a/pip-install-to-json/Makefile
+++ b/src/pip-install-to-json/Makefile
@@ -1,10 +1,21 @@
 TARGET=se.lth.control.pip-install-to-json
 FLATHUB_REPO="https://flathub.org/repo/flathub.flatpakrepo"
+COLLECTION_ID=se.lth.control
+STATE_DIR=
+REPO=
 
 .PHONY: build
 build:  setup \
 	pip+wheel.json
 	flatpak-builder --force-clean build $(TARGET).json
+	flatpak-builder --force-clean \
+			${COLLECTION_ID:%=--collection-id %} \
+			${STATE_DIR:%=--state-dir %} \
+			${REPO:%=--repo %} \
+			build $(TARGET).json
+
+PHONY: install
+install: build
 	flatpak-builder --user --install --force-clean build/ $(TARGET).json
 
 .PHONY: uninstall
diff --git a/pip-install-to-json/bootstrap-pip+wheel.json b/src/pip-install-to-json/bootstrap-pip+wheel.json
similarity index 100%
rename from pip-install-to-json/bootstrap-pip+wheel.json
rename to src/pip-install-to-json/bootstrap-pip+wheel.json
diff --git a/pip-install-to-json/pip-install-to-json.py b/src/pip-install-to-json/pip-install-to-json.py
similarity index 100%
rename from pip-install-to-json/pip-install-to-json.py
rename to src/pip-install-to-json/pip-install-to-json.py
diff --git a/pip-install-to-json/se.lth.control.pip-install-to-json.json b/src/pip-install-to-json/se.lth.control.pip-install-to-json.json
similarity index 100%
rename from pip-install-to-json/se.lth.control.pip-install-to-json.json
rename to src/pip-install-to-json/se.lth.control.pip-install-to-json.json