refactoring ocl