Further improved inheritance by extending Object.prototype and using property descriptors