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); } *() {} *(G2Drawable drawable, int w, int h) { makeImage = drawableToImage(w, h, drawable); } }