General refactoring and fixes of lint issues
Add missing final specifier