Thanks @mbaret a lot for the summary. I agree we should proceed Step3 and Step4 first because they are more self-contained. In addition, the way for Step4 is kind of pretty standard (using tuple/GetTupleItem) and you already have an algorithm for Step3. I suggest we have a separate discussion on Step1 and Step2 so that the discussion could be more focused and less confusing.