We do not necessarily need it (the classmethod part). However, is there a downside to making functions classmethods/staticmethods when it is possible to do so? Perhaps if the function shouldn't be used without an instance of the class, because it's closely tied to the other functionallity of the class...
It might make testing the functions easier because it removes the dependency on the `__init__`.. which we do not have in case of the algorithm classes...(which I don't find a very strong argument to use the decorators)

And the difference is actually:
```python
# classmethod
DirectAlgorithm.reconstruct_common(t0, t1, t2, x0, x1, x2, y0, y1, y2)
DirectAlgorithm().reconstruct_common(t0, t1, t2, x0, x1, x2, y0, y1, y2)
# regular method
DirectAlgorithm().reconstruct_common(t0, t1, t2, x0, x1, x2, y0, y1, y2)
```