better intterupt handling