Adding just a few things that can make it easy to continue... included a playground test case