bump version; refactor equals()