PerspectiveCorrection Exercise 1 refactored