implement interrupt: same as wakeup