An Outercurve NuPattern-based toolkit for the Visitor Pattern