Added interrupt support, plus some other tweaks

NOTE: Interrupt support is unstable; it is NOT solid code!