sclass AnimatedImageSurface > ImageSurface { FlexibleRateTimer animationTimer = new(20).pileUp(false); selfType fps aka setFPS(double fps) { animationTimer.setFrequencyImmediately(fps); this; } swappable BufferedImage makeImage() { ret whiteImage(10, 10); } *() {} *(IF0 *makeImage) {} *(double fps, IF0 *makeImage) { setFPS(fps); } }