### Problem as the title ### Proposed solution Start with the tests and get these reviewed in a PR before filling out the function