Switched to (slower) reflection based toString, hascode and equals