add deep equals for objects and arrays