puppy-math: final version