functor (OP : OptionalParameters-> S