diff --git a/bak.txt b/bak.txt
new file mode 100644
index 0000000..eefd113
--- /dev/null
+++ b/bak.txt
@@ -0,0 +1,277 @@
+// pub mod gpioa {
+// use core::marker::PhantomData;
+// use core::convert::Infallible;
+// use cortex_m::interrupt::CriticalSection;
+// use super::{
+// FUNSEL1, FUNSEL2, FUNSEL3, Floating, Funsel, GpioExt, Input, OpenDrain,
+// PullUp, Output, FilterType, FilterClkSel, Pin, GpioRegExt, PushPull
+// };
+// use crate::{pac::PORTA, pac::SYSCONFIG, pac::IOCONFIG};
+// use embedded_hal::digital::v2::{InputPin, OutputPin, StatefulOutputPin, toggleable};
+// pub struct Parts {
+// pub pa0: PA0>
+// }
+
+// impl GpioExt for PORTA {
+// type Parts = Parts;
+// fn split(self, syscfg: &mut SYSCONFIG) -> Parts {
+// syscfg.peripheral_clk_enable.modify(|_, w| {
+// w.porta().set_bit();
+// w.gpio().set_bit();
+// w.ioconfig().set_bit();
+// w
+// });
+// Parts {
+// pa0: PA0 { _mode: PhantomData }
+// }
+// }
+// }
+
+// fn _set_alternate_mode(index: usize, mode: u8) {
+// unsafe {
+// let reg = &(*IOCONFIG::ptr());
+// reg.porta[index].modify(|_, w| {
+// w.funsel().bits(mode)
+// })
+// }
+// }
+// pub struct PA0 {
+// _mode: PhantomData,
+// }
+// impl PA0 {
+// pub fn into_funsel_1(self, _cs: &CriticalSection) -> PA0> {
+// _set_alternate_mode(0, 1);
+// PA0 { _mode: PhantomData }
+// }
+// pub fn into_funsel_2(self, _cs: &CriticalSection) -> PA0> {
+// _set_alternate_mode(0, 2);
+// PA0 { _mode: PhantomData }
+// }
+// pub fn into_funsel_3(self, _cs: &CriticalSection) -> PA0> {
+// _set_alternate_mode(0, 3);
+// PA0 { _mode: PhantomData }
+// }
+// pub fn into_floating_input(self, _cs: &CriticalSection) -> PA0> {
+// unsafe {
+// let reg = &(*IOCONFIG::ptr());
+// reg.porta[0].modify(|_, w| {
+// w.funsel().bits(0);
+// w.pen().clear_bit();
+// w.opendrn().clear_bit()
+// });
+// let port_reg = &(*PORTA::ptr());
+// port_reg.dir().modify(|r,w| w.bits(r.bits() & !(1 << 0)));
+// }
+// PA0 { _mode: PhantomData }
+// }
+
+// pub fn into_pull_up_input(self, _cs: &CriticalSection) -> PA0> {
+// unsafe {
+// let reg = &(*IOCONFIG::ptr());
+// reg.porta[0].modify(|_, w| {
+// w.funsel().bits(0);
+// w.pen().set_bit();
+// w.plevel().set_bit();
+// w.opendrn().clear_bit()
+// });
+// let port_reg = &(*PORTA::ptr());
+// port_reg.dir().modify(|r,w| w.bits(r.bits() & !(1 << 0)));
+// }
+// PA0 { _mode: PhantomData }
+// }
+
+// pub fn into_pull_down_input(self, _cs: &CriticalSection) -> PA0> {
+// unsafe {
+// let reg = &(*IOCONFIG::ptr());
+// reg.porta[0].modify(|_, w| {
+// w.funsel().bits(0);
+// w.pen().set_bit();
+// w.plevel().clear_bit();
+// w.opendrn().clear_bit()
+// });
+// let port_reg = &(*PORTA::ptr());
+// port_reg.dir().modify(|r,w| w.bits(r.bits() & !(1 << 0)));
+// }
+// PA0 { _mode: PhantomData }
+// }
+
+// pub fn into_open_drain_output(self, _cs: &CriticalSection) -> PA0