concept G22PointOfInterest > ConceptWithChangeListeners { S imageMD5; Pt pt; BlurAndPosterizeSettings bnpSettings; Set labels; S labelsText; toString { ret commaCombine("Point of interest " + id, labelsText); } G22Utils g22utils() { ret main g22utils(this); } G22GalleryImage galleryImage() { ret g22utils().galleryImageForMD5(imageMD5); } G22DataWrangler wrangler() { new G22DataWrangler wrangler; wrangler.timings(g22utils().functionTimings()); wrangler.inputImage(galleryImage().getImage()); wrangler.importSettings(bnpSettings); ret wrangler; } }