implement Interruption, not working right