implemented with when/rest and tap/argeparse/havarsine

There are TODO comments inline where there is still work to do. The
tests do run and are working well. Copy tests.sh to mytests.sh and
replace with API-KEY to run the tests. You can specify mock or acts for
the provider.