base refactoring to align with Oi