opd Refactor