interrupt support, now is just demo, will add more code later