now MarshalJSON takes args
now UnmarshalJSON takes args