lots of equals() fixes