I am trying to figure out the technical differences between EMS (Python API) and BCVTB during simulation runtime? Not necessarily their different features/uses, but what is happening under the hood at each timestep that differentiates the two. I am particularly curious about their differences with respect to implementing custom control. Thank you