why `object|`?