refactoring for overrides