Fixed Objet.keys exception
changed how getters are being defined to the more standards complient defineProperty