that does the parfait
much better, though wasteful implementation breaks a few tests, but ploughing on first