replaced depricated __defineGetter__ with defineProperty