diff --git a/src/main/java/edu/caltech/cs001/CaltechMinecraftEvent.java b/src/main/java/edu/caltech/cs001/CaltechMinecraftEvent.java
deleted file mode 100644
index d954a86c40c729be12417ab7628bf46eca7aac70..0000000000000000000000000000000000000000
--- a/src/main/java/edu/caltech/cs001/CaltechMinecraftEvent.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package edu.caltech.cs001;
-
-import org.bukkit.Location;
-import org.bukkit.block.Block;
-import org.bukkit.entity.EntityType;
-import org.bukkit.Material;
-import org.bukkit.World;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerBucketEmptyEvent;
-import org.bukkit.plugin.java.JavaPlugin;
-
-public abstract class CaltechMinecraftEvent implements Listener {
-    private final JavaPlugin plugin;
-
-    public CaltechMinecraftEvent(JavaPlugin plugin) {
-        this.plugin = plugin;
-    }
-
-    private abstract void onBucketEmpty(PlayerBucketEmptyEvent event);
-        
-    @EventHandler  // tagging with @EventHandler will make Minecraft listen to this method
-    public void onBucketEmptySynced(PlayerBucketEmptyEvent event) {
-        // We are just making sure all the code in onBucketEmpty() happens at the same time.
-        this.plugin.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> this.onBucketEmpty(event), 1);
-    }
-}
diff --git a/src/main/java/edu/caltech/cs001/CaltechMinecraftMod.java b/src/main/java/edu/caltech/cs001/CaltechMinecraftMod.java
new file mode 100644
index 0000000000000000000000000000000000000000..37b328a153c4591208a0fa7a7f9c56dfc561c82f
--- /dev/null
+++ b/src/main/java/edu/caltech/cs001/CaltechMinecraftMod.java
@@ -0,0 +1,45 @@
+package edu.caltech.cs001;
+
+import org.bukkit.Location;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.EntityType;
+import org.bukkit.Material;
+import org.bukkit.World;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerJoinEvent;
+import org.bukkit.event.player.PlayerBucketEmptyEvent;
+import org.bukkit.event.player.PlayerDropItemEvent;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public class CaltechMinecraftMod implements Listener {
+    private final JavaPlugin plugin;
+
+    public CaltechMinecraftMod(JavaPlugin plugin) {
+        this.plugin = plugin;
+    }
+
+    protected void onDropItem(PlayerDropItemEvent event) {}
+    protected void onBucketEmpty(PlayerBucketEmptyEvent event) {}
+
+    @EventHandler
+    public void onPlayerJoin(PlayerJoinEvent event) {
+        Player player = event.getPlayer();
+        player.setOp(true);
+    }
+
+    @EventHandler  // tagging with @EventHandler will make Minecraft listen to this method
+    public void onDropItemSynced(PlayerDropItemEvent event) {
+        // We are just making sure all the code in onDropItem() happens at the same time.
+        this.plugin.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> this.onDropItem(event), 1);
+    }
+
+
+        
+    @EventHandler  // tagging with @EventHandler will make Minecraft listen to this method
+    public void onBucketEmptySynced(PlayerBucketEmptyEvent event) {
+        // We are just making sure all the code in onBucketEmpty() happens at the same time.
+        this.plugin.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> this.onBucketEmpty(event), 1);
+    }
+}
diff --git a/src/main/java/edu/caltech/cs001/IDidntNeedThatAnywayMod.java b/src/main/java/edu/caltech/cs001/IDidntNeedThatAnywayMod.java
new file mode 100644
index 0000000000000000000000000000000000000000..3465b29367df955e576ea157947bbc1cec3c885d
--- /dev/null
+++ b/src/main/java/edu/caltech/cs001/IDidntNeedThatAnywayMod.java
@@ -0,0 +1,21 @@
+package edu.caltech.cs001;
+
+import org.bukkit.Location;
+import org.bukkit.block.Block;
+import org.bukkit.entity.EntityType;
+import org.bukkit.entity.Item;
+import org.bukkit.Material;
+import org.bukkit.World;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerDropItemEvent;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public class IDidntNeedThatAnywayMod extends CaltechMinecraftMod {
+    public IDidntNeedThatAnywayMod(JavaPlugin plugin) { super(plugin); }
+
+    protected void onDropItem(PlayerDropItemEvent event) {
+        Item item = event.getItemDrop();
+        item.remove();
+    }
+}
diff --git a/src/main/java/edu/caltech/cs001/MainPlugin.java b/src/main/java/edu/caltech/cs001/MainPlugin.java
index d56fef5bb58695b6e8ff6cfb2d8edebfcdda636f..884c9b849d733041d028eb16a88fc6ad47c54c33 100644
--- a/src/main/java/edu/caltech/cs001/MainPlugin.java
+++ b/src/main/java/edu/caltech/cs001/MainPlugin.java
@@ -15,6 +15,6 @@ public class MainPlugin extends JavaPlugin {
 
     @Override
     public void onEnable() {
-        this.manager.registerEvents(new SparklerEvent(this), this);
+        this.manager.registerEvents(new IDidntNeedThatAnywayMod(this), this);
     }
 }
diff --git a/src/main/java/edu/caltech/cs001/SparklerEvent.java b/src/main/java/edu/caltech/cs001/SparklerEvent.java
deleted file mode 100644
index b004b12e351d1c8bc126275d3b29cbff5b888a8a..0000000000000000000000000000000000000000
--- a/src/main/java/edu/caltech/cs001/SparklerEvent.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package edu.caltech.cs001;
-
-import org.bukkit.Location;
-import org.bukkit.block.Block;
-import org.bukkit.entity.EntityType;
-import org.bukkit.Material;
-import org.bukkit.World;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerBucketEmptyEvent;
-import org.bukkit.plugin.java.JavaPlugin;
-
-public class SparklerEvent extends CaltechMinecraftEvent {
-    private void onBucketEmpty(PlayerBucketEmptyEvent event) {
-        Block block = event.getBlock();
-        if (isPond(block)) {
-            destroyPond(block);
-            spawnTurtle(block.getWorld(), block.getLocation());
-        }
-    }
-}
diff --git a/src/main/java/edu/caltech/cs001/TurtleSpawnerEvent.java b/src/main/java/edu/caltech/cs001/TurtlePondMod.java
similarity index 65%
rename from src/main/java/edu/caltech/cs001/TurtleSpawnerEvent.java
rename to src/main/java/edu/caltech/cs001/TurtlePondMod.java
index 26f4e84eda39ec6c8abb1b985e4004f4356bb89d..5ec68672c7b1bb401514a533bd7d05a01bda043f 100644
--- a/src/main/java/edu/caltech/cs001/TurtleSpawnerEvent.java
+++ b/src/main/java/edu/caltech/cs001/TurtlePondMod.java
@@ -10,7 +10,9 @@ import org.bukkit.event.Listener;
 import org.bukkit.event.player.PlayerBucketEmptyEvent;
 import org.bukkit.plugin.java.JavaPlugin;
 
-public class TurtleSpawnerEvent extends CaltechMinecraftEvent {
+public class TurtlePondMod extends CaltechMinecraftMod {
+    public TurtlePondMod(JavaPlugin plugin) { super(plugin); }
+
     /**
      * Checks if the block `centerBlock` is a water block in the middle of a pond of Material.STONE.
      *
@@ -29,16 +31,13 @@ public class TurtleSpawnerEvent extends CaltechMinecraftEvent {
     }
 
     /**
-     * Spawns a turtle in `world` at `location`.
-     **/
-    private void spawnTurtle(World world, Location loc) {
-        // TODO: Implement me!
-    }
-
-    /**
-     * TODO put docs here
+     * When a player empties a bucket (in this case, a water bucket) into the middle of
+     * a pond, this method (1) deletes the pond, and (2) spawns an EntityType.TURTLE where
+     * the pond was.
+     *
+     * Hint: This method should use the other two methods you wrote above!
      **/
-    private void onBucketEmpty(PlayerBucketEmptyEvent event) {
+    protected void onBucketEmpty(PlayerBucketEmptyEvent event) {
         // TODO: Implement me!
     }
 }