diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5ed7d1ee1d47a9d2bb314a87f99538d402e982e0
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="bagel" />
+      </profile>
+    </annotationProcessing>
+    <bytecodeTargetLevel>
+      <module name="bagel" target="14" />
+    </bytecodeTargetLevel>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000000000000000000000000000000000000..712ab9d985c20018a0c97b93d2148ac1ffe588a5
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml b/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8a3817e8e03ccad221cb388d67521c24d3f93203
--- /dev/null
+++ b/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.github.eleanor-em:bagel:1.9.3">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/io/github/eleanor-em/bagel/1.9.3/bagel-1.9.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/io/github/eleanor-em/bagel/1.9.3/bagel-1.9.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/io/github/eleanor-em/bagel/1.9.3/bagel-1.9.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b41e0a0e6d45226876b26c951f89f0a888668616
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..04a33d893ffa7c2f813e11d6127a98947eb61143
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-assimp:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_macos_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_macos_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ca1d198cac83d9120515f48d57197c2a5c16a968
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_macos_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-assimp:natives-macos:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-natives-macos.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.2.2/lwjgl-assimp-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..48aa8aa34959abd0874a96c96d6e6f9d65c33c91
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-glfw:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_macos_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_macos_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f42095931774828fb8049a7c17d995404c248945
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_macos_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-glfw:natives-macos:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-natives-macos.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_macos_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_macos_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d806e09f7a1984918343ca6934604b8cd39b641e
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_macos_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl:natives-macos:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-natives-macos.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..094321fdec8e071749a25633e9045b2367b2860f
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-openal:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_macos_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_macos_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c5f06cb55090320ab58648ec87fc4fb6487cf5bc
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_macos_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-openal:natives-macos:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-natives-macos.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..24121c2ac5c3e85eac2364a7a2245a6fa9ca70cd
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-opengl:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_macos_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_macos_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cc8c1f3e1574c7c549451fd2dffedf0ac6a56d4b
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_macos_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-opengl:natives-macos:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-natives-macos.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8155b1d9f1cafbdb9f1f61bfe47964a335361c48
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-stb:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_macos_3_2_2.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_macos_3_2_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..af9fd1a4d2c75bf9807766eab03e4aaf90ceee78
--- /dev/null
+++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_macos_3_2_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.lwjgl:lwjgl-stb:natives-macos:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-natives-macos.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/project-1/target/classes/IO/environment.csv b/project-1/target/classes/IO/environment.csv
new file mode 100644
index 0000000000000000000000000000000000000000..79fea88a9ab126ee1e10f0828bcff2047ec182f7
--- /dev/null
+++ b/project-1/target/classes/IO/environment.csv
@@ -0,0 +1,3 @@
+Player,650,100,2
+Zombie,300,200
+Sandwich,500,400
\ No newline at end of file
diff --git a/project-1/target/classes/font/DejaVuSans-Bold.ttf b/project-1/target/classes/font/DejaVuSans-Bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..c0d8e5e462df7f268efba09f6931e37daad151e1
Binary files /dev/null and b/project-1/target/classes/font/DejaVuSans-Bold.ttf differ
diff --git a/project-1/target/classes/images/background.png b/project-1/target/classes/images/background.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6601996a24eebf1b568ad8e05d2e137a030b52e
Binary files /dev/null and b/project-1/target/classes/images/background.png differ
diff --git a/project-1/target/classes/images/player.png b/project-1/target/classes/images/player.png
new file mode 100644
index 0000000000000000000000000000000000000000..103a2ff1c64ccd5bf18b9ef8b2ca444dbdf204d1
Binary files /dev/null and b/project-1/target/classes/images/player.png differ
diff --git a/project-1/target/classes/images/sandwich.png b/project-1/target/classes/images/sandwich.png
new file mode 100644
index 0000000000000000000000000000000000000000..87e12ec3db6704914262fd359822407fb9ecd172
Binary files /dev/null and b/project-1/target/classes/images/sandwich.png differ
diff --git a/project-1/target/classes/images/zombie.png b/project-1/target/classes/images/zombie.png
new file mode 100644
index 0000000000000000000000000000000000000000..41519c41828d76f5cdfbd9493025d3867347d926
Binary files /dev/null and b/project-1/target/classes/images/zombie.png differ