more readable equal and deepEqual