add some minor fixes
refactor TakeInterrupt out of ExecuteInterrupts