concept Screenshot { *() {} // for persistance *(BufferedImage img) { savePNG(pngFile(), img); } File pngFile() { ret prepareProgramFile("screenshot" + id + ".png"); } } concept MarkedClip { new Ref screenshot; Rect positionInScreenshot; BWImage img; S description; }