Setters need pointers to update fields properly

Also toying with the count_low_zero_bits() function. I think it matches the
C++ version but it needs a lot more testing.