Flows keep repeating or not calling the next flow

Hello everyone, I am trying to ask the user a series of questions and I am using flows with -link. But it seems like link is not working. Also even if I see that the slot of a flow is filled (so I believe the flow completed sucessfully) it may go the next flow and then return back to the flow that the slot is already filled. I don’t know what to do in order to ask a series of questions. This is part of my flows.yml

  collect_smoking:
 description: This flow asks the users if he smokes or not.If the user answers correctly follow the flow "collect_drinking"
 steps:
  - collect: smoking
    description: the user affirms or denies smoking
    utter: utter_smoking
    next:
      - if: "{'yes' 'YES' } contains slots.smoking"
        then: 
         - action: utter_quitsmoking
           next: affirm
      - else: deny
  - id: affirm
    link: collect_drinking
  - id: deny
    link: collect_drinking

 collect_drinking:
 description: This flow asks the users if he is drinking or not. If the user answers correctly move to flow "collect_work"
 steps:
  - collect: drinking
    description: the user affirms or denies drinking
    utter: utter_drinking
  #- action: utter_drinking
  - link: collect_work

 collect_work:
 description: This flow asks the users work.
 steps:
  - collect: work
    description: the work of the user
    utter: utter_work

so sometimes after collect_drinking is called it may go to a completely different flow. Also if smoking slot is filled successfully, then it will go to collect_drinking and the when it is time to go to collect_work it may go back to previous flows like collect_drinking. Am I doing something wrong?

Thank you very much