refactor, removing finals