Work in progress, see version 2 at: https://scratch.mit.edu/projects/814582385/ and final version at: https://scratch.mit.edu/projects/815950726/