move interrupt function