Use correct borrowing kind when initializing timer
diff --git a/examples/adc.rs b/examples/adc.rs
index 2304889..8aaf194 100644
--- a/examples/adc.rs
+++ b/examples/adc.rs
@@ -9,7 +9,7 @@
 async fn main() -> TockResult<()> {
     let Drivers {
         mut adc_driver_factory,
-        timer_context,
+        mut timer_context,
         console_driver,
         ..
     } = libtock::retrieve_drivers()?;
diff --git a/examples/blink.rs b/examples/blink.rs
index adc1ef3..8d6f6da 100644
--- a/examples/blink.rs
+++ b/examples/blink.rs
@@ -8,7 +8,7 @@
 async fn main() -> TockResult<()> {
     let Drivers {
         mut leds_driver_factory,
-        timer_context,
+        mut timer_context,
         ..
     } = libtock::retrieve_drivers()?;
 
diff --git a/examples/blink_random.rs b/examples/blink_random.rs
index 10e368c..985746d 100644
--- a/examples/blink_random.rs
+++ b/examples/blink_random.rs
@@ -10,7 +10,7 @@
     let Drivers {
         mut leds_driver_factory,
         mut rng_driver,
-        timer_context,
+        mut timer_context,
         ..
     } = libtock::retrieve_drivers()?;
 
diff --git a/examples/button_read.rs b/examples/button_read.rs
index 23e0418..252493b 100644
--- a/examples/button_read.rs
+++ b/examples/button_read.rs
@@ -9,7 +9,7 @@
 async fn main() -> TockResult<()> {
     let Drivers {
         mut buttons_driver_factory,
-        timer_context,
+        mut timer_context,
         console_driver,
         ..
     } = libtock::retrieve_drivers()?;
diff --git a/examples/button_subscribe.rs b/examples/button_subscribe.rs
index 07dced4..9fd64f4 100644
--- a/examples/button_subscribe.rs
+++ b/examples/button_subscribe.rs
@@ -11,7 +11,7 @@
 async fn main() -> TockResult<()> {
     let Drivers {
         mut buttons_driver_factory,
-        timer_context,
+        mut timer_context,
         console_driver,
         ..
     } = libtock::retrieve_drivers()?;
diff --git a/examples/gpio.rs b/examples/gpio.rs
index 9ef489c..2f2c94f 100644
--- a/examples/gpio.rs
+++ b/examples/gpio.rs
@@ -9,7 +9,7 @@
 async fn main() -> TockResult<()> {
     let Drivers {
         mut gpio_driver_factory,
-        timer_context,
+        mut timer_context,
         ..
     } = libtock::retrieve_drivers()?;
 
diff --git a/examples/gpio_read.rs b/examples/gpio_read.rs
index e9e14f1..88e723d 100644
--- a/examples/gpio_read.rs
+++ b/examples/gpio_read.rs
@@ -11,7 +11,7 @@
 async fn main() -> TockResult<()> {
     let Drivers {
         mut gpio_driver_factory,
-        timer_context,
+        mut timer_context,
         console_driver,
         ..
     } = libtock::retrieve_drivers()?;
diff --git a/examples/sensors.rs b/examples/sensors.rs
index 4e72c8c..afe365c 100644
--- a/examples/sensors.rs
+++ b/examples/sensors.rs
@@ -9,17 +9,18 @@
 #[libtock::main]
 async fn main() -> TockResult<()> {
     let Drivers {
-        console_driver,
-        timer_context,
         mut temperature_sensor,
         mut humidity_sensor,
         mut ambient_light_sensor,
         mut ninedof_driver,
+        mut timer_context,
+        console_driver,
         ..
     } = libtock::retrieve_drivers()?;
+
+    let mut timer_driver = timer_context.create_timer_driver();
+    let timer_driver = timer_driver.activate()?;
     let mut console = console_driver.create_console();
-    let mut driver = timer_context.create_timer_driver();
-    let timer_driver = driver.activate()?;
 
     loop {
         writeln!(console, "Humidity:    {}\n", humidity_sensor.read()?)?;
diff --git a/examples/seven_segment.rs b/examples/seven_segment.rs
index 316cf1c..5637497 100644
--- a/examples/seven_segment.rs
+++ b/examples/seven_segment.rs
@@ -26,7 +26,7 @@
 async fn main() -> TockResult<()> {
     let Drivers {
         mut gpio_driver_factory,
-        timer_context,
+        mut timer_context,
         ..
     } = libtock::retrieve_drivers()?;
 
diff --git a/examples/simple_ble.rs b/examples/simple_ble.rs
index 89d4e6e..a6e5289 100644
--- a/examples/simple_ble.rs
+++ b/examples/simple_ble.rs
@@ -19,7 +19,7 @@
     let Drivers {
         mut leds_driver_factory,
         mut ble_advertising_driver,
-        timer_context,
+        mut timer_context,
         ..
     } = libtock::retrieve_drivers()?;
 
diff --git a/examples/temperature.rs b/examples/temperature.rs
index 624a296..aa868ff 100644
--- a/examples/temperature.rs
+++ b/examples/temperature.rs
@@ -9,7 +9,7 @@
 async fn main() -> TockResult<()> {
     let Drivers {
         mut temperature_driver_factory,
-        timer_context,
+        mut timer_context,
         console_driver,
         ..
     } = libtock::retrieve_drivers()?;
diff --git a/examples/timer.rs b/examples/timer.rs
index 9ed0112..bb6d862 100644
--- a/examples/timer.rs
+++ b/examples/timer.rs
@@ -19,6 +19,7 @@
         console_driver,
         ..
     } = libtock::retrieve_drivers()?;
+
     let mut console = console_driver.create_console();
 
     let mut previous_ticks = None;
diff --git a/examples/timer_subscribe.rs b/examples/timer_subscribe.rs
index f7e158c..6f7ec1b 100644
--- a/examples/timer_subscribe.rs
+++ b/examples/timer_subscribe.rs
@@ -9,11 +9,13 @@
 #[libtock::main]
 async fn main() -> TockResult<()> {
     let Drivers {
-        console_driver,
         mut timer_context,
+        console_driver,
         ..
     } = libtock::retrieve_drivers()?;
+
     let mut console = console_driver.create_console();
+
     let mut with_callback = timer_context.with_callback(|_, _| {
         writeln!(
             console,
diff --git a/src/timer.rs b/src/timer.rs
index 34316f5..d93198e 100644
--- a/src/timer.rs
+++ b/src/timer.rs
@@ -299,10 +299,10 @@
 
 impl DriverContext {
     /// Create a driver timer from a context.
-    pub fn create_timer_driver(&self) -> TimerDriver<'_> {
+    pub fn create_timer_driver(&mut self) -> TimerDriver {
         TimerDriver {
             callback: Callback,
-            context: &self,
+            context: self,
         }
     }