Starting to cleanup the interruption module
Rewritten large chunk of code (not tested)