add MarshalJSON to ID