Revert "Another attempt.  Still too inefficient."

This reverts commit 65fca04faa60c34d5760ed2f2f88281cadd8eba0.
Revert "Revert "Another attempt.  Still too inefficient.""

This reverts commit d44fd7194dbe895d0cec240e2f0d8959768b4c26.
Revert "Another attempt.  Still too inefficient."

This reverts commit 65fca04faa60c34d5760ed2f2f88281cadd8eba0.
Revert "Latest attempt. Fixes a missing return statement."

This reverts commit a75258cd2c41d4cad1ee9a866edcbfc4d0964106.
Revert "Not quite there, trying another method."

This reverts commit 1b826f27aa570d2b74441b4186a9f83b585021aa.
Revert "Revert "Not quite there, trying another method.""

This reverts commit c15fe691f75d9ac50b970fdff0ec8fc5603bd81f.
Revert "Revert "Latest attempt. Fixes a missing return statement.""

This reverts commit b10e7677799d1eee223c120a8b20945f7d7ec3e1.
Revert "Revert "Another attempt.  Still too inefficient.""

This reverts commit cedb79397e57ba1122cfde833a91dfc91f8f8e51.
Revert "Revert "Revert "Another attempt.  Still too inefficient."""

This reverts commit 5dbb2d38b3850294d312b23abec6a3ef08614c52.
Revert "Revert "Another attempt.  Still too inefficient.""

This reverts commit d44fd7194dbe895d0cec240e2f0d8959768b4c26.
Solution for #14 complete needs some documenting though.