diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..bbe1a5379c15d9dabee8bc6fee65f5a8ac83939d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+docs/build/*
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000000000000000000000000000000000000..4482c06838650ba726072d7ad4647dbe03820862
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+  "julia.environmentPath": "/Users/lamberttheisen/Desktop/gits/nmh/SustainableSoftwareEngineering.jl"
+}
diff --git a/Manifest.toml b/Manifest.toml
new file mode 100644
index 0000000000000000000000000000000000000000..25749f9b39f60fd4d2c6754e46a6928d4601ad76
--- /dev/null
+++ b/Manifest.toml
@@ -0,0 +1,208 @@
+# This file is machine-generated - editing it directly is not advised
+
+julia_version = "1.9.3"
+manifest_format = "2.0"
+project_hash = "e0c77beb18dc1f6cce661ebd60658c0c1a77390f"
+
+[[deps.ANSIColoredPrinters]]
+git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c"
+uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9"
+version = "0.0.1"
+
+[[deps.AbstractTrees]]
+git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c"
+uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
+version = "0.4.4"
+
+[[deps.ArgTools]]
+uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
+version = "1.1.1"
+
+[[deps.Artifacts]]
+uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
+
+[[deps.Base64]]
+uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
+
+[[deps.Dates]]
+deps = ["Printf"]
+uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
+
+[[deps.DocStringExtensions]]
+deps = ["LibGit2"]
+git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d"
+uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
+version = "0.9.3"
+
+[[deps.Documenter]]
+deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "Dates", "DocStringExtensions", "Downloads", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "Test", "Unicode"]
+git-tree-sha1 = "662fb21ae7fad33e044c2b59ece832fdce32c171"
+uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
+version = "1.1.2"
+
+[[deps.Downloads]]
+deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"]
+uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
+version = "1.6.0"
+
+[[deps.FileWatching]]
+uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
+
+[[deps.IOCapture]]
+deps = ["Logging", "Random"]
+git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6"
+uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89"
+version = "0.2.3"
+
+[[deps.InteractiveUtils]]
+deps = ["Markdown"]
+uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
+
+[[deps.JSON]]
+deps = ["Dates", "Mmap", "Parsers", "Unicode"]
+git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a"
+uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
+version = "0.21.4"
+
+[[deps.LazilyInitializedFields]]
+git-tree-sha1 = "8f7f3cabab0fd1800699663533b6d5cb3fc0e612"
+uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf"
+version = "1.2.2"
+
+[[deps.LibCURL]]
+deps = ["LibCURL_jll", "MozillaCACerts_jll"]
+uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
+version = "0.6.3"
+
+[[deps.LibCURL_jll]]
+deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
+uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
+version = "7.84.0+0"
+
+[[deps.LibGit2]]
+deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
+uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
+
+[[deps.LibSSH2_jll]]
+deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
+uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
+version = "1.10.2+0"
+
+[[deps.Libdl]]
+uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
+
+[[deps.Logging]]
+uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
+
+[[deps.Markdown]]
+deps = ["Base64"]
+uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
+
+[[deps.MarkdownAST]]
+deps = ["AbstractTrees", "Markdown"]
+git-tree-sha1 = "465a70f0fc7d443a00dcdc3267a497397b8a3899"
+uuid = "d0879d2d-cac2-40c8-9cee-1863dc0c7391"
+version = "0.1.2"
+
+[[deps.MbedTLS_jll]]
+deps = ["Artifacts", "Libdl"]
+uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
+version = "2.28.2+0"
+
+[[deps.Mmap]]
+uuid = "a63ad114-7e13-5084-954f-fe012c677804"
+
+[[deps.MozillaCACerts_jll]]
+uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
+version = "2022.10.11"
+
+[[deps.NetworkOptions]]
+uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
+version = "1.2.0"
+
+[[deps.Parsers]]
+deps = ["Dates", "PrecompileTools", "UUIDs"]
+git-tree-sha1 = "a935806434c9d4c506ba941871b327b96d41f2bf"
+uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
+version = "2.8.0"
+
+[[deps.Pkg]]
+deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
+uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
+version = "1.9.2"
+
+[[deps.PrecompileTools]]
+deps = ["Preferences"]
+git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f"
+uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
+version = "1.2.0"
+
+[[deps.Preferences]]
+deps = ["TOML"]
+git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e"
+uuid = "21216c6a-2e73-6563-6e65-726566657250"
+version = "1.4.1"
+
+[[deps.Printf]]
+deps = ["Unicode"]
+uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
+
+[[deps.REPL]]
+deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
+uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
+
+[[deps.Random]]
+deps = ["SHA", "Serialization"]
+uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
+
+[[deps.RegistryInstances]]
+deps = ["LazilyInitializedFields", "Pkg", "TOML", "Tar"]
+git-tree-sha1 = "ffd19052caf598b8653b99404058fce14828be51"
+uuid = "2792f1a3-b283-48e8-9a74-f99dce5104f3"
+version = "0.1.0"
+
+[[deps.SHA]]
+uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
+version = "0.7.0"
+
+[[deps.Serialization]]
+uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
+
+[[deps.Sockets]]
+uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
+
+[[deps.TOML]]
+deps = ["Dates"]
+uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
+version = "1.0.3"
+
+[[deps.Tar]]
+deps = ["ArgTools", "SHA"]
+uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
+version = "1.10.0"
+
+[[deps.Test]]
+deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
+uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
+
+[[deps.UUIDs]]
+deps = ["Random", "SHA"]
+uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
+
+[[deps.Unicode]]
+uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
+
+[[deps.Zlib_jll]]
+deps = ["Libdl"]
+uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
+version = "1.2.13+0"
+
+[[deps.nghttp2_jll]]
+deps = ["Artifacts", "Libdl"]
+uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
+version = "1.48.0+0"
+
+[[deps.p7zip_jll]]
+deps = ["Artifacts", "Libdl"]
+uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
+version = "17.4.0+0"
diff --git a/Project.toml b/Project.toml
index bdcc48d61692e9f4e6061047df0a889d5cb710ee..610bcd6b5999eebf82289a2408d143d18b5b375a 100644
--- a/Project.toml
+++ b/Project.toml
@@ -2,3 +2,6 @@ name = "SustainableSoftwareEngineering"
 uuid = "21a74dc4-15e8-4c9f-8bf4-d36d52617c8b"
 authors = ["Lambert Theisen <lambert.theisen@rwth-aachen.de>"]
 version = "0.1.0"
+
+[deps]
+Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7963650be74e6d9a2167d93c623bab784d7504e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+# Sustainable Software Engineering
+
+TODO
+
+Link to lecture material
diff --git a/docs/make.jl b/docs/make.jl
new file mode 100644
index 0000000000000000000000000000000000000000..20761c2c14e8126ccd2c52d0b017bdcdeddf897f
--- /dev/null
+++ b/docs/make.jl
@@ -0,0 +1,13 @@
+push!(LOAD_PATH,"../src/")
+push!(LOAD_PATH,"src/")
+
+using Documenter, SustainableSoftwareEngineering
+
+makedocs(
+  sitename="My Documentation",
+  remotes = nothing,
+  pages = Any[
+        "Home" => "index.md",
+        joinpath.("lecture", filter(name->contains(name, ".md"), readdir("docs/src/lecture/")))...
+    ]
+)
diff --git a/docs/src/index.md b/docs/src/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..1c014129b1dca17befdc440c0c5fc0d4ec00b170
--- /dev/null
+++ b/docs/src/index.md
@@ -0,0 +1,3 @@
+# Example.jl Documentation
+
+Hi
diff --git a/docs/0-intro.md b/docs/src/lecture/0-intro.md
similarity index 100%
rename from docs/0-intro.md
rename to docs/src/lecture/0-intro.md
diff --git a/docs/1-git.md b/docs/src/lecture/1-git.md
similarity index 98%
rename from docs/1-git.md
rename to docs/src/lecture/1-git.md
index 8d85f5f662eedbebba0942a303f68862cd8115e6..1bee4a91e2e5f717e6b8834b1e7e3405437b048a 100644
--- a/docs/1-git.md
+++ b/docs/src/lecture/1-git.md
@@ -40,3 +40,4 @@ git config --global user.email "your.email@example.com"
 TODO
 Addd some images to visualize
 Add further reading
+Explain gitignore and make example
diff --git a/docs/2-julia_project_structure.md b/docs/src/lecture/2-julia_project_structure.md
similarity index 90%
rename from docs/2-julia_project_structure.md
rename to docs/src/lecture/2-julia_project_structure.md
index c60efd0f030569bc41cc047d350b08c8f31daa6f..d2127f2bf705c32d25febe4351a038e6710adb4b 100644
--- a/docs/2-julia_project_structure.md
+++ b/docs/src/lecture/2-julia_project_structure.md
@@ -39,6 +39,12 @@ pkg> generate MyProject
 ## Project.toml and Manifest.toml
 
 - `Project.toml`: Managing project dependencies and environment settings
+  - Activate ($\Leftrightarrow$ download and use all external packages from `Project.toml`)
+```julia
+using Pkg
+Pkg.activate(".")  # or press "]" to go into pkg mode and then type "actiavate" and hit enter
+# Activating project at `~/Desktop/gits/nmh/SustainableSoftwareEngineering.jl`
+```
 - `Manifest.toml`: Detailed state of the environment for reproducibility
 - Understanding the role of these files in dependency management and version control
 
diff --git a/docs/3-julia_documentation.md b/docs/src/lecture/3-julia_documentation.md
similarity index 95%
rename from docs/3-julia_documentation.md
rename to docs/src/lecture/3-julia_documentation.md
index 549fb7c7ec4c1f902f3f4cf128d817f46f5dd9e0..aa18fdb8787a25f34e03ecc085d1964194095beb 100644
--- a/docs/3-julia_documentation.md
+++ b/docs/src/lecture/3-julia_documentation.md
@@ -22,7 +22,7 @@ Here's a simple example of how to write a doc string in Julia:
 
 ```julia
 """
-    myFunction(x, y)
+    add(x, y)
 
 Compute the sum of `x` and `y`.
 
@@ -32,10 +32,10 @@ Compute the sum of `x` and `y`.
 
 # Examples
 ```julia
-julia> myFunction(2, 3)
+julia> add(2, 3)
 5
 """
-function myFunction(x::Int, y::Int)
+function add(x::Int, y::Int)
 return x + y
 end
 ```
@@ -49,7 +49,7 @@ Documenter.jl is a tool for producing documentation in Julia. We'll look at how
 
 ### Setting Up Documenter.jl
 
-- Installing Documenter.jl
+- Installing Documenter.jl (`import Pkg; Pkg.add("Documenter")`)
 - Basic setup and configuration
 
 ### Creating an Index with Documenter.jl
diff --git a/docs/4-julia_testing.md b/docs/src/lecture/4-julia_testing.md
similarity index 100%
rename from docs/4-julia_testing.md
rename to docs/src/lecture/4-julia_testing.md
diff --git a/docs/9-todo.md b/docs/src/lecture/9-todo.md
similarity index 100%
rename from docs/9-todo.md
rename to docs/src/lecture/9-todo.md
diff --git a/docs/figs/git-remote.png b/docs/src/lecture/figs/git-remote.png
similarity index 100%
rename from docs/figs/git-remote.png
rename to docs/src/lecture/figs/git-remote.png
diff --git a/examples/a-big-sum.jl b/examples/a-big-sum.jl
new file mode 100644
index 0000000000000000000000000000000000000000..73cf0bd36b87f1ece7693fa3965079d1247eb03a
--- /dev/null
+++ b/examples/a-big-sum.jl
@@ -0,0 +1,8 @@
+using SustainableSoftwareEngineering
+
+# Here, we test our function with a simple example.
+add(100, 101)
+# 201
+
+add(100, "101")
+# MethodError: MethodError: no method matching add(::Int64, ::String)
diff --git a/src/Addition.jl b/src/Addition.jl
new file mode 100644
index 0000000000000000000000000000000000000000..20515a3552c41c923f7596bc0d081120c907f751
--- /dev/null
+++ b/src/Addition.jl
@@ -0,0 +1,19 @@
+export add
+
+"""
+add(x, y)
+
+Compute the sum of `x` and `y`.
+
+# Arguments
+- `x::Int`: The first integer
+- `y::Int`: The second integer
+
+# Examples
+```julia
+julia> add(2, 3)
+5
+"""
+function add(x::Int, y::Int)
+  return x + y
+end
diff --git a/src/SustainableSoftwareEngineering.jl b/src/SustainableSoftwareEngineering.jl
index 60be68a894512d85f11e000b6789a62699857ab6..eb55eea35a1071d5cc07c0e1549d17317a3ec074 100644
--- a/src/SustainableSoftwareEngineering.jl
+++ b/src/SustainableSoftwareEngineering.jl
@@ -1,5 +1,5 @@
 module SustainableSoftwareEngineering
 
-greet() = print("Hello World!")
+include("Addition.jl")
 
 end # module SustainableSoftwareEngineering