# ConfiguratorKernel Developer Documentation
To simplify and streamline the updating of components no recursive effects will occur. Whenever a value of a component changes, it is marked as dirty and added to the list of changed components. The list of dirty components then taken and updates every element in the list. after those are done, the algorithm takes the next batch of dirty components (which might result from the updates of the previous batch) and updates them.
There are 3 ways how changes of planComponents can be initiated from outside:
- setting the Parameter of a component
- (re)dock a component/subtree
- delete/undock a component
After that initial changes, other components can only be changed from calculations inside and by assignments via connections.
See the diagram for a complete flow. (src: https://drive.google.com/file/d/1znE0YzrRJ-Su8SIdxDxyQixb2CF5JH-m/view?usp=sharing)
For calculating preview of geomtery of a new component on an object
- onDock assigment
- onUpdate scripts
- evalutation of validvalues on parameters are exceuted on simulated valuemap to get the correct preview geometry