Decoder to handle the actual loop