hasOwn doesn't exist yet, woops
build