diff --git a/gui/Cargo.lock b/gui/Cargo.lock
new file mode 100644
index 0000000..7650348
--- /dev/null
+++ b/gui/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "gui"
+version = "0.1.0"
diff --git a/gui/src/lib.rs b/gui/src/lib.rs
index 9cbc855..18c1cdb 100644
--- a/gui/src/lib.rs
+++ b/gui/src/lib.rs
@@ -13,3 +13,15 @@ impl Screen {
 pub trait Draw {
     fn draw(&self);
 }
+
+pub struct Button {
+    pub width: u32,
+    pub height: u32,
+    pub label: String,
+}
+
+impl Draw for Button {
+    fn draw(&self) {
+        // code to actually draw a button
+    }
+}