diff --git a/src/utils/database.ts b/src/utils/database.ts
index 66d7e67..c0ae9be 100644
--- a/src/utils/database.ts
+++ b/src/utils/database.ts
@@ -132,26 +132,17 @@
     }
 }
 
-export class EventSchedulerDatabase {
-    events: Collection<EventSchedulerSchema>;
-    defaultData: GuildConfig;
+export class Premium {
+    premium: Collection<PremiumSchema>;
 
     async setup() {
-        this.events = database.collection<EventSchedulerSchema>("eventScheduler");
+        this.premium = database.collection<PremiumSchema>("premium");
         return this;
     }
 
-    async create(timestamp: Date, data: object) {
-        await this.events.insertOne({ timestamp: timestamp, data: data});
-    }
-
-    async getNext() {
-        let entry = await this.events.findOne({ timestamp: { $lte: new Date() }});
-        return entry;
-    }
-
-    async remove(timestamp: Date, data: object) {
-        await this.events.deleteOne({ timestamp: timestamp, data: data});
+    async hasPremium(guild: string) {
+        let entry = await this.premium.findOne({ appliesTo: { $in: [guild] } });
+        return entry != null;
     }
 }
 
@@ -222,6 +213,10 @@
         },
         staff: {
             channel: string | null,
+        },
+        attachments: {
+            channel: string | null,
+            saved: {}  // {channelID+messageID: log url (string)}
         }
     }
     verify: {
@@ -307,7 +302,9 @@
     note: string
 }
 
-export interface EventSchedulerSchema {
-    timestamp: Date,
-    data: object
+export interface PremiumSchema {
+    user: string,
+    level: number,
+    expires: Date,
+    appliesTo: string[]
 }
\ No newline at end of file
