make sure the factories are executed after the definition of the variables, in the order specified