base refactoring