diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/SWEN20003_a1.iml b/.idea/SWEN20003_a1.iml
new file mode 100644
index 0000000000000000000000000000000000000000..d6ebd4805981b8400db3e3291c74a743fef9a824
--- /dev/null
+++ b/.idea/SWEN20003_a1.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e208459b8afde5f7980720efd6bbb97f7ae24541
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a9e4e9dad6b4ee4a339ad787de878790ab68b33
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/SWEN20003_a1.iml" filepath="$PROJECT_DIR$/.idea/SWEN20003_a1.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/bagel-starter-pack/.gitignore b/bagel-starter-pack/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..f63bc049776ab3ec747d02ffe7c5fade3059026d
--- /dev/null
+++ b/bagel-starter-pack/.gitignore
@@ -0,0 +1,4 @@
+/target
+/.idea
+*.iml
+
diff --git a/bagel-starter-pack/pom.xml b/bagel-starter-pack/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..19edbafc627e4d560897199b353fac6ad0463909
--- /dev/null
+++ b/bagel-starter-pack/pom.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>au.edu.unimelb.cis</groupId>
+    <artifactId>bagel</artifactId>
+    <version>0.1-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+    <build>
+        <sourceDirectory>src/</sourceDirectory>
+        <plugins>
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>11</source>
+                    <target>11</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <properties>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.github.eleanor-em</groupId>
+            <artifactId>bagel</artifactId>
+            <version>1.9.3</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/bagel-starter-pack/res/bagel.png b/bagel-starter-pack/res/bagel.png
new file mode 100644
index 0000000000000000000000000000000000000000..13ad6a70d5ca358b77e98680daa5034fff5c3120
Binary files /dev/null and b/bagel-starter-pack/res/bagel.png differ
diff --git a/bagel-starter-pack/res/ball.png b/bagel-starter-pack/res/ball.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a695bca9a0c3b2243a698236128e8e5961737ea
Binary files /dev/null and b/bagel-starter-pack/res/ball.png differ
diff --git a/bagel-starter-pack/res/conformable.otf b/bagel-starter-pack/res/conformable.otf
new file mode 100644
index 0000000000000000000000000000000000000000..52cf623d896c065914bd1b06c0462919b54f6ff3
Binary files /dev/null and b/bagel-starter-pack/res/conformable.otf differ
diff --git a/bagel-starter-pack/res/house.png b/bagel-starter-pack/res/house.png
new file mode 100644
index 0000000000000000000000000000000000000000..0bb978132c6d6c4bfed143a72f2011ae014cd293
Binary files /dev/null and b/bagel-starter-pack/res/house.png differ
diff --git a/bagel-starter-pack/res/player.png b/bagel-starter-pack/res/player.png
new file mode 100644
index 0000000000000000000000000000000000000000..103a2ff1c64ccd5bf18b9ef8b2ca444dbdf204d1
Binary files /dev/null and b/bagel-starter-pack/res/player.png differ
diff --git a/bagel-starter-pack/res/smiley.png b/bagel-starter-pack/res/smiley.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a0810422a1e894cd405bd2982f9260cc42a9a6f
Binary files /dev/null and b/bagel-starter-pack/res/smiley.png differ
diff --git a/bagel-starter-pack/src/BagelTest.java b/bagel-starter-pack/src/BagelTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..cc306fb7f0c7f871eb7dce2458687920a12e5bc0
--- /dev/null
+++ b/bagel-starter-pack/src/BagelTest.java
@@ -0,0 +1,59 @@
+import bagel.*;
+
+import java.util.Random;
+
+/**
+ * An example Bagel game.
+ *
+ * @author Eleanor McMurtry
+ */
+public class BagelTest extends AbstractGame {
+    private Image smiley;
+    private Image bagel;
+    private double x = 100;
+    private double y = 100;
+
+    public BagelTest() {
+        super(800, 600, "Hello World");
+        bagel = new Image("res/bagel.png");
+        smiley = new Image("res/smiley.png");
+    }
+
+    /**
+     * The entry point for the program.
+     */
+    public static void main(String[] args) {
+        BagelTest game = new BagelTest();
+        game.run();
+    }
+
+    /**
+     * Performs a state update. This simple example shows an image that can be controlled with the arrow keys, and
+     * allows the game to exit when the escape key is pressed.
+     */
+    @Override
+    public void update(Input input) {
+        double speed = 0.5;
+
+        if (input.isDown(Keys.LEFT)) {
+            x -= speed;
+        }
+        if (input.isDown(Keys.RIGHT)) {
+            x += speed;
+        }
+        if (input.isDown(Keys.UP)) {
+            y -= speed;
+        }
+        if (input.isDown(Keys.DOWN)) {
+            y += speed;
+        }
+
+        if (input.wasPressed(Keys.ESCAPE)) {
+            Window.close();
+        }
+
+
+        bagel.draw(Window.getWidth() / 2.0, Window.getHeight() / 2.0);
+        smiley.draw(x, y);
+    }
+}