OCP refactoring

forshtreter@ & frgt@