fix argument name
support inheritance
impl required_to_dict