generate hashCode
test: cover more field types + fixes
generate equals