implemented exercise1 using interrupts, added GPIO_IF definition