Moved this up as using `defineProperty` prevent access to prototype method without throwing an error.