modified checkListener with interrupt