See the code behind this example at
bahmutov/covered-cycle-example