Instead of a private property with a getter, why not just define "progress" as a read-only property?

```javascript
Object.defineProperty(this, "progress", { writable: false });
```

In the constructor, then you only have 1 instead of two properties refering to the same thing. Prefer to use getter/setter functions when you need to run logic on get/set. This comment goes for all the above simple getters.