Switched Prototype methods to use defineProperties over repeated use of defineProperty