Wrote in place expr compare
Rewrote inside-out to use less memory