manually adding Miller's first take at solving #56, commits 69b444ad7d777817c6ffa6c69884b722c370d87e and deff79574ccacaaa21ca052f2f1030bbb0488f7f from the Pure Data git