diff --git a/.cargo/config b/.cargo/config
index 5d4b78a7cab49ca9c8bbe8d076af420fee86624f..c0817cc63ca6243785e40722fc099f2013ccb39f 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -8,7 +8,7 @@
 # runner = "arm-none-eabi-gdb -q -x openocd.gdb"
 # runner = "gdb-multiarch -q -x openocd.gdb"
 # runner = "gdb -q -x openocd.gdb"
-runner = "probe-run --chip STM32F411RETx"
+ runner = "probe-run --chip STM32F411RETx"
 
 rustflags = [
   # This is needed if your flash or ram addresses are not aligned to 0x10000 in memory.x
diff --git a/Cargo.toml b/Cargo.toml
index 5566427d541becf7805eb85b9fee5795675370b6..98440a5ddf2e0c2b27dbbeae07c16433577ebbba 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,7 +8,7 @@ version = "0.1.0"
 [dependencies]
 cortex-m = "0.6.0"
 cortex-m-rt = "0.6.13"
-cortex-m-rtic = "0.5.5"
+cortex-m-rtic = "0.6.0-alpha.0"
 
 # tracing
 cortex-m-semihosting = "0.3.5"
diff --git a/src/main.rs b/src/main.rs
index bc85ce18358c7480181753a839d9eb6a9d7862d5..d0a599c0f4b04b63847e635d935b8249fb9b1c32 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -10,24 +10,22 @@ use cortex_m;
 use panic_rtt_target as _;
 use rtt_target::{rprintln, rtt_init_print};
 use stm32f4;
-
-// #[rtic::app(device = lm3s6965, peripherals = true)]
-#[rtic::app(device = stm32f4)]
-const APP: () = {
+#[rtic::app(device = stm32f4, peripherals = false)]
+mod app {
+    use super::*;
     #[init]
-    fn init(_cx: init::Context) {
-        
+    fn init(_cx: init::Context) -> init::LateResources {
         rtt_init_print!();
         rprintln!("init");
+        init::LateResources {}
     }
 
     #[idle]
     fn idle(_cx: idle::Context) -> ! {
-
         rprintln!("idle");
         panic!("panic");
         loop {
             continue;
         }
     }
-};
+}