functions in OCP should be static