Used Object.defineProperty() to define virtual fields on instances