update
adding some more error checking to make sure that things stop when an error occurs
Adding initial code to start compacting source variables; starting with handling initial values, which currently work as long as they eventually resolve into a variable with a numerical initial_value - the case of using an equation to set the initial value of a variable is not currently handled.