Make class properties private

* Prefer `private` over `protected` as discussed a lot of times.
* More descriptive variable names.
* Avoid reusing variable names for different things.