add interrupt functionality