modify interrupt function