concept Screenshot { *() {} // for persistance *(BufferedImage img) { savePNG(pngFile(), img); } File pngFile() { ret prepareProgramFile(_programID(), "screenshot" + id + ".png"); } } Clip > MarkedClip { Screenshot screenshot; // todo: turn into Ref Rect positionInScreenshot; } concept Clip { long originalID; // ID in #1005389 BWImage img; S description; } concept Found { new Ref screenshot; new Ref clip; FoundImg fi; } concept FullySearched { new Ref screenshot; new Ref clip; }