ref #0004 base refactoring