add support for interrupt callback