In `Widget`, the members `x` and `y` should be `private`. They should not be exposed to the interface in such a way. You can either add the `private` keyword above them, or just move the `public` keyword below them (classes are `private` by default, so both are essentially the same).