Refactor, no more crazy Object.defineWhatevers