"raise objection if started as a root sequence" "starting_phase != null"----please explain both

In reply to Subhra Bera:

Starting_phase is an object which should exist during the run_phase.
Your code shows the implementation of the objections in a sequence. But this is only one place where the objections can be implemented.