concept G22PointOfInterest > ConceptWithChangeListeners { S imageMD5; Pt pt; BlurAndPosterizeSettings bnpSettings; //Set labels; S source; S labelsText; toString { ret commaCombine("Point of interest " + id, labelsText); } G22Utils g22utils() { ret main g22utils(this); } BufferedImage image() { var img = galleryImage(); ret img?.image(); } G22GalleryImage galleryImage() { ret g22utils().galleryImageForMD5(imageMD5); } G22DataWrangler wrangler() { new G22DataWrangler wrangler; wrangler.timings(g22utils().functionTimings()); wrangler.inputImage(image()); wrangler.importSettings(bnpSettings); ret wrangler; } IImageRegion regionAroundPoint(G22DataWrangler wrangler default wrangler()) { var rm = wrangler.regionMaker; ret rm.getRegion(rm.regionAt(pt)); } }