added dirty check override