Simplified the 0 vs omitempty thing (not sure this is more clear, but x=nil is now omitted while x=&zerovalue encode the 0 value