Changed to a more generic change detector