sclass CachedPosterizer is IPosterizer { IPosterizer posterizer; int[] cache; *(IPosterizer *posterizer) { makeCache(); } // 0..255 to 0..255 public int get(int brightness) { ret cache[brightness]; } void makeCache { cache = new int[256]; for brightness to 256: cache[brightness] = posterizer.get(brightness); } }