should be done in the arguments imo: `__construct($key, $value, $type = 'property')` (why did you make $key and $value optional, those are required)