Stefan Berghofer's solution