add deep equality logic to $watch