Notes:
some lines had breaks at varying positions, fixed to 80.
this improves readability to me immensely
some stuff should not be wrapped and other parts are just hard to
wrap, so I am satisfied with this for now.
[ci skip]
This commit fixes the following problems:
- protected methods marked as public.
- inherited operations that are not overriden are repeated.
- one method had an invalid parameter (see attached image).
- abstract class not indicated as such.
This commit improves the following aspects:
- I did not like how the classes were arranged, so went ahead and made
some small chnges. I hope you don't mind the different distribution.