This is currently very inefficient, as it causes an array cast per-property. Should be cached locally instead