sclass ChessOCR_Pipeline { transient BufferedImage inputImage; new SeenAndQueue boardPositions; new ChessOCR_BoardsFound boardsFound; ChessPieceRecognizer pieceRecognizer; transient ReliableSingleThread rstProcessPositions = new(processPositions); *() { boardPositions.onAddedToQueue = rstProcessPositions; } void processPositions() { Rect r; while not null (r = boardPositions.popQueue()) { ping(); ChessOCR_RecognizedBoard board = pieceRecognizer.recognizeBoard(clipBufferedImage(inputImage, r)); boardsFound.add(board); } } }