For example: FillHoles is an op class whose compute method repeatedly calls flood fill. But unlike FloodFill, it is not accessible from a simple static method; one would need to write new FillHoles<BitType>().compute(op, structElement, r) (tangentially: what's up with the input RAI being named op here?).