Code cleanup

While browsing through the code, I saw some pieces of code that, in my opinion, do not follow OOP conventions. So I thought: let's improve it, because I have the role of Lead Software Engineer after all. :)

What I changed is broadly:
+ Changed the visibility of some fields to private visibility, because fields should be as directly inaccessible as possible;
+ Changed an unnecessary extra method to an overriding method, because the method was intended to override another method.

Please merge this branch to master if you agree with the changes.