With our technique components do not schedule events to notify other components of input data changes. Rather, each component grabs its current input value from the outputting component on its own,and does so only when the value is actually needed to model the data flow at that time. This is done without scheduling any events, and does not require any two-way communication. There is little to no overhead incurred with this approach.