These don't need to use `hasOwnProperty`, what if I make a custom object to represent these options; one that gets these properties from the prototype chain? This strange check forces only a plain object with normal properties which is not necessary.