current implementation is based on stateless ComputationStep implementations which exposes a process method that takes a ComputationContext parameter
this way of coding create a very tight coupling between all ComputationStep implementations through the ComputationContext class.
As an already visible consequence, creating a new ComputationStep which requires a change to ComputationContext requires changing unit test of other ComputationStep which behavior hasn't actually changed! This does not scale and generate too much useless extra maintrenance work.
the best solution to this problem is to implement statefull ComputationStep implementation and remove the ComputationContext completely. Any dependency a ComputationStep will need will then be declared as constructor parameters and coupling will therefor be removed