diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..f093ff5a3d376531bd02ad3d2f37fc6a336491b9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,81 @@
+# This file is used to ignore files which are generated
+# ----------------------------------------------------------------------------
+
+*.xml
+.env
+.venv
+*.user
+
+*~
+*.autosave
+*.a
+*.core
+*.moc
+*.o
+*.obj
+*.orig
+*.rej
+*.so
+*.so.*
+*_pch.h.cpp
+*_resource.rc
+*.qm
+.#*
+*.*#
+core
+!core/
+tags
+.DS_Store
+.directory
+*.debug
+Makefile*
+*.prl
+*.app
+moc_*.cpp
+ui_*.h
+qrc_*.cpp
+Thumbs.db
+*.res
+*.rc
+/.qmake.cache
+/.qmake.stash
+
+# qtcreator generated files
+*.pro.user*
+
+# xemacs temporary files
+*.flc
+
+# Vim temporary files
+.*.swp
+
+# Visual Studio generated files
+*.ib_pdb_index
+*.idb
+*.ilk
+*.pdb
+*.sln
+*.suo
+*.vcproj
+*vcproj.*.*.user
+*.ncb
+*.sdf
+*.opensdf
+*.vcxproj
+*vcxproj.*
+
+# MinGW generated files
+*.Debug
+*.Release
+
+# Python byte code
+*.pyc
+
+# Binaries
+# --------
+*.dll
+*.exe
+
+# Version handling
+# ----------------
+simudator/_version.py
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..09dbb9ea930d08b56acead15a37b656ffb975fdd
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Division of Computer Engineering, Linköping University, Sweden
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000000000000000000000000000000000000..b5cbbad79ebdf8bc99a4d8fbc433c83917103928
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,36 @@
+[project]
+name = "simudator"
+description = "Framework for easily building microprocessor simulators"
+dynamic = ["version"]
+license = { file = "LICENSE" }
+dependencies = ["pyside2", "dicttoxml", "xmltodict"]
+requires-python = ">=3.6"
+classifiers = [
+    "Intended Audience :: Science/Research",
+    "License :: OSI Approved :: MIT License",
+    "Programming Language :: Python",
+    "Programming Language :: Python :: 3",
+]
+maintainers = [{ name = "Oscar Gustafsson", email = "oscar.gustafsson@liu.se" }]
+
+[build-system]
+requires = ["setuptools", "setuptools-scm"]
+build-backend = "setuptools.build_meta"
+
+[project.optional-dependencies]
+test = ["pytest", "pytest-qt"]
+doc = ["sphinx"]
+
+[tool.setuptools_scm]
+write_to = "simudator/_version.py"
+version_scheme = "release-branch-semver"
+local_scheme = "node-and-date"
+parentdir_prefix_version = "simudator-"
+fallback_version = "0.0+UNKNOWN"
+
+[tool.black]
+skip-string-normalization = true
+line-length = 79
+
+[tool.pytest.ini_options]
+testpaths = ["simudator/tests"]
diff --git a/simudator.pyproject b/simudator.pyproject
new file mode 100644
index 0000000000000000000000000000000000000000..0250fe1af91aeff6935e75e6eb754126179dbcc9
--- /dev/null
+++ b/simudator.pyproject
@@ -0,0 +1,3 @@
+{
+    "files": ["cli.py",".gitignore","modals.py","alu_widget.ui","sim_modules.py","LICENSE","mainwindow.ui","simudator_numbers.py","parsers.py","widget.py","module_widget.py","README.md","module.ui","simudator.py","add_module_modal.ui","add_module.ui","simudator/main.py"]
+}