Better getter/setters

Switched over to using Object.defineProperty for getters/setters