diff --git a/examples/embassy/Cargo.toml b/examples/embassy/Cargo.toml
index 21cb83f..2790f75 100644
--- a/examples/embassy/Cargo.toml
+++ b/examples/embassy/Cargo.toml
@@ -27,7 +27,7 @@ embassy-executor = { version = "0.7", features = [
   "executor-interrupt"
 ]}
 
-va108xx-hal = { path = "../../va108xx-hal" }
+va108xx-hal = "0.9"
 va108xx-embassy = { path = "../../va108xx-embassy", default-features = false }
 
 [features]
diff --git a/examples/rtic/Cargo.toml b/examples/rtic/Cargo.toml
index 3af0d22..1a4fc06 100644
--- a/examples/rtic/Cargo.toml
+++ b/examples/rtic/Cargo.toml
@@ -22,5 +22,5 @@ rtic-sync = { version = "1.3", features = ["defmt-03"] }
 once_cell = {version = "1", default-features = false, features = ["critical-section"]}
 ringbuf = { version = "0.4.7", default-features = false, features = ["portable-atomic"] }
 
-va108xx-hal = { version = "0.9", path = "../../va108xx-hal" }
+va108xx-hal = "0.9"
 vorago-reb1 = { path = "../../vorago-reb1" }
diff --git a/examples/simple/Cargo.toml b/examples/simple/Cargo.toml
index 5949276..4437dd3 100644
--- a/examples/simple/Cargo.toml
+++ b/examples/simple/Cargo.toml
@@ -16,7 +16,6 @@ embedded-io = "0.6"
 cortex-m-semihosting = "0.5.0"
 
 [dependencies.va108xx-hal]
-path = "../../va108xx-hal"
 version = "0.9"
 features = ["rt", "defmt"]
 
diff --git a/vorago-reb1/CHANGELOG.md b/vorago-reb1/CHANGELOG.md
index 79734bb..418d3f8 100644
--- a/vorago-reb1/CHANGELOG.md
+++ b/vorago-reb1/CHANGELOG.md
@@ -8,6 +8,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
 
 ## [unreleased]
 
+## [v0.7.0] 2025-02-13
+
+- Bumped `va108xx-hal` dependency to 0.9
+- Minor adjustments to `Button` API.
+- `Button`, `Led` and `Leds` now simply wrap a type using a tuple struct.
+
 ## [v0.6.0] 2024-09-30
 
 - Added M95M01 EEPROM module/API
diff --git a/vorago-reb1/Cargo.toml b/vorago-reb1/Cargo.toml
index 61076e7..1101f0e 100644
--- a/vorago-reb1/Cargo.toml
+++ b/vorago-reb1/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "vorago-reb1"
-version = "0.6.0"
+version = "0.7.0"
 authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"]
 edition = "2021"
 description = "Board Support Crate for the Vorago REB1 development board"
@@ -19,7 +19,6 @@ bitfield = ">=0.17, <=0.18"
 max116xx-10bit = "0.3"
 
 [dependencies.va108xx-hal]
-path = "../va108xx-hal"
 version = "0.9"
 features = ["rt"]
 
diff --git a/vorago-reb1/src/button.rs b/vorago-reb1/src/button.rs
index 9688f09..c7477fa 100644
--- a/vorago-reb1/src/button.rs
+++ b/vorago-reb1/src/button.rs
@@ -11,23 +11,21 @@ use va108xx_hal::{
 };
 
 #[derive(Debug)]
-pub struct Button {
-    button: Pin<PA11, InputFloating>,
-}
+pub struct Button(pub Pin<PA11, InputFloating>);
 
 impl Button {
     pub fn new(pin: Pin<PA11, InputFloating>) -> Button {
-        Button { button: pin }
+        Button(pin)
     }
 
     #[inline]
     pub fn pressed(&mut self) -> bool {
-        self.button.is_low().ok().unwrap()
+        self.0.is_low().ok().unwrap()
     }
 
     #[inline]
     pub fn released(&mut self) -> bool {
-        self.button.is_high().ok().unwrap()
+        self.0.is_high().ok().unwrap()
     }
 
     /// Configures an IRQ on edge.
@@ -38,7 +36,7 @@ impl Button {
         syscfg: Option<&mut pac::Sysconfig>,
         irqsel: Option<&mut pac::Irqsel>,
     ) {
-        self.button
+        self.0
             .configure_edge_interrupt(edge_type, irq_cfg, syscfg, irqsel);
     }
 
@@ -50,7 +48,7 @@ impl Button {
         syscfg: Option<&mut pac::Sysconfig>,
         irqsel: Option<&mut pac::Irqsel>,
     ) {
-        self.button
+        self.0
             .configure_level_interrupt(level, irq_cfg, syscfg, irqsel);
     }
 
@@ -59,6 +57,6 @@ impl Button {
     /// Please note that you still have to set a clock divisor yourself using the
     /// [`va108xx_hal::clock::set_clk_div_register`] function in order for this to work.
     pub fn configure_filter_type(&mut self, filter: FilterType, clksel: FilterClkSel) {
-        self.button.configure_filter_type(filter, clksel);
+        self.0.configure_filter_type(filter, clksel);
     }
 }
diff --git a/vorago-reb1/src/leds.rs b/vorago-reb1/src/leds.rs
index 304cddd..8939b24 100644
--- a/vorago-reb1/src/leds.rs
+++ b/vorago-reb1/src/leds.rs
@@ -15,15 +15,12 @@ pub type LD2 = Pin<PA10, PushPullOutput>;
 pub type LD3 = Pin<PA7, PushPullOutput>;
 pub type LD4 = Pin<PA6, PushPullOutput>;
 
-pub struct Leds {
-    leds: [Led; 3],
-}
+#[derive(Debug)]
+pub struct Leds(pub [Led; 3]);
 
 impl Leds {
     pub fn new(led_pin1: LD2, led_pin2: LD3, led_pin3: LD4) -> Leds {
-        Leds {
-            leds: [led_pin1.into(), led_pin2.into(), led_pin3.into()],
-        }
+        Leds([led_pin1.into(), led_pin2.into(), led_pin3.into()])
     }
 }
 
@@ -31,13 +28,13 @@ impl core::ops::Deref for Leds {
     type Target = [Led];
 
     fn deref(&self) -> &[Led] {
-        &self.leds
+        &self.0
     }
 }
 
 impl core::ops::DerefMut for Leds {
     fn deref_mut(&mut self) -> &mut [Led] {
-        &mut self.leds
+        &mut self.0
     }
 }
 
@@ -45,28 +42,25 @@ impl core::ops::Index<usize> for Leds {
     type Output = Led;
 
     fn index(&self, i: usize) -> &Led {
-        &self.leds[i]
+        &self.0[i]
     }
 }
 
 impl core::ops::IndexMut<usize> for Leds {
     fn index_mut(&mut self, i: usize) -> &mut Led {
-        &mut self.leds[i]
+        &mut self.0[i]
     }
 }
 
-pub struct Led {
-    pin: DynPin,
-}
+#[derive(Debug)]
+pub struct Led(pub DynPin);
 
 macro_rules! ctor {
 	($($ldx:ident),+) => {
 		$(
 			impl From<$ldx> for Led {
 				fn from(led: $ldx) -> Self {
-					Led {
-						pin: led.into()
-					}
+					Led(led.into())
 				}
 			}
 		)+
@@ -79,18 +73,18 @@ impl Led {
     /// Turns the LED off. Setting the pin high actually turns the LED off
     #[inline]
     pub fn off(&mut self) {
-        self.pin.set_high().ok();
+        self.0.set_high().ok();
     }
 
     /// Turns the LED on. Setting the pin low actually turns the LED on
     #[inline]
     pub fn on(&mut self) {
-        self.pin.set_low().ok();
+        self.0.set_low().ok();
     }
 
     /// Toggles the LED
     #[inline]
     pub fn toggle(&mut self) {
-        self.pin.toggle_with_toggle_reg().ok();
+        self.0.toggle_with_toggle_reg().ok();
     }
 }