Update to using Object.defineProperty

I know the properties default to false, but specifying them makes the
reasoning behind setting them clearer. I don't want them overwritten.