rename CCOpt.guard into CCOpt.wrap, add an optional handler, add CCOpt.wrap2