static interface MakesBufferedImage extends WidthAndHeight { BufferedImage getBufferedImage(); public default void drawAt(Graphics2D g, int x, int y) { g.drawImage(getBufferedImage(), x, y, null); } meta-for getWidth also as getHeight { default int getWidth() { ret getBufferedImage().getWidth(); } } }