Currently it may not be clear to users what the calculate method in the calculators does. Instead of storing results in the class, we should return a result object. A dataclass would be a good choice here.
A prototype could be
Results(
final_state=...,
...,
)