Better code practices - Part 1

- Use @Override everywhere possible
- Logger String Concatenation
- Length one String in String.indexOf
- Chain .append methods instead of string concatenation
- Convert String.equals("") to String.isEmpty()
- Fix Utility Classes without constructors
Better code practices - Part 2

- Use assignment-operator where possible
- Abstracts that can be Interfaces
- Fix Public constructors in Private Classes