why do we have a property "type"?