updates to allow json serialization