qa plug suggestions
Apply changes to tidy up code via qaplug issues
Update comments for package structure
More qaplug changes
Remove unused local vars
Remove unused imports
qaplug changes

* Remove final from interfaces
* Made classes design for extendability
Make classes final to design for extension
Remove no longer used classes
Make some classes final, avoid overwriting params etc
Give methods and variables correct accessors
Make variables final and fix variable names
Remove unused fields
Tidy up for qaplug issue reduction