Some mistakes in the math, but overall ok....