Added UnmarshalJSON and tests